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"