public class BaseActivity extends Activity { private App application; private BaseActivity oContext; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (application == null) { // 得到Application对象 application = (App) getApplication(); } oContext = this;// 把当前的上下文对象赋值给BaseActivity addActivity();// 调用添加方法 } // 添加Activity方法 public void addActivity() { application.addActivity_(oContext);// 调用myApplication的添加Activity方法 } //销毁当个Activity方法 public void removeActivity() { application.removeActivity_(oContext);// 调用myApplication的销毁单个Activity方法 } //销毁所有Activity方法 public void removeALLActivity() { application.removeALLActivity_();// 调用myApplication的销毁所有Activity方法 }
}
public class App extends Application { private List<Activity> oList;//用于存放所有启动的Activity的集合 @Override public void onCreate() { super.onCreate(); oList = new ArrayList<Activity>(); } /** * 添加Activity */ public void addActivity_(Activity activity) { // 判断当前集合中不存在该Activity if (!oList.contains(activity)) { oList.add(activity);//把当前Activity添加到集合中 } } /** * 销毁单个Activity */ public void removeActivity_(Activity activity) { //判断当前集合中存在该Activity if (oList.contains(activity)) { oList.remove(activity);//从集合中移除 activity.finish();//销毁当前Activity } } /** * 销毁所有的Activity */ public void removeALLActivity_() { //通过循环,把集合中的所有Activity销毁 for (Activity activity : oList) { activity.finish(); } } }
用法 :
继承BaseActivity 后 调用方法就行 removeActivity()等方法
切记BaseActivity 也需要在清单文件中 声明