[Android设计模式]Android退出应用程序终极方法

原文

1.自定义Application管理Activity

public class DoomApplication extends Application {
private static DoomApplication instance;
private Stack<Activity> actStack = new Stack<Activity>();


@Override
public void onCreate() {
super.onCreate();
instance = this;
}


public static DoomApplication getInstance() {
return instance;
}


// 增加一个Activity
public void addActivity(Activity activity) {
actStack.addElement(activity);
}


// 得到当前Activity
public Activity getCurrentActivity() {
if (actStack.isEmpty()) {
return null;
} else {
return actStack.lastElement();
}
}


// 结束当前Activity
public void finishCurrentActiviy() {
if (actStack.isEmpty()) {
return;
}
finishActivity(actStack.lastElement());
}


// 结束指定Activity
public void finishActivity(Activity activity) {
if (activity != null) {
actStack.remove(activity);
activity.finish();
}
}


// 结束指定类名Activity
public void finishActivity(Class<?> cls) {
Activity finishAct = null;
for (Activity findAct : actStack) {
if (findAct.getClass().equals(cls)) {
finishAct = findAct;
break;
}
}
finishActivity(finishAct);
}


// 程序退出
public void AppExit() {
for (Activity findAct : actStack) {
findAct.finish();
}
actStack.clear();
}


}


2. 定义一个BaseActiviy类,每次创建,则加入application的栈中

public abstract class BaseActivty extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DoomApplication.getInstance().addActivity(BaseActivty.this);
}


}


3.AndroidManifest.xml设置:

-<application android:name="com.example.applicationcompleteexitdemo.DoomApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher"





你可能感兴趣的:(android,完全退出)