首先要创建一个一个单例
这个单例的作用就是管理所有的Activity
因为要想退出就必须关闭所有的Activity
system.exit(0)
只能关闭当前的Activity
所以才需要建一个单例来存储所有的Activity
比如新建一个ActivityCollector
类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| public class ActivityCollector extends Application {
private List<Activity> activityList = new LinkedList<Activity>();
private static ActivityCollector instance;
private ActivityCollector() { }
public static ActivityCollector getInstance() { if(null == instance) { instance = new ActivityCollector(); } return instance; }
@Override public void onCreate() { super.onCreate(); }
//添加Activity到容器中 public void addActivity(Activity activity) { activityList.add(activity); }
//遍历所有Activity并finish public void exit() { for(Activity activity:activityList) { activity.finish(); } activityList.clear(); } }
|
紧接着就是尽量把所有的Activity
都放到一个数组里面
第一种方法
就是建一个基类
然后直接在基类里面的onCreate
方法里面直接添加一次即可
1 2 3 4 5 6 7 8
| public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 添加Activity到堆栈 ActivityCollector.getInstance().addActivity(this); } }
|
然后其他Activity
直接继承BaseActivity
即可
这种适合于Activity
比较多的情况
如果Activity
比较少的话也可以直接在每个onCreate
方法里面直接添加
1
| ActivityCollector.getInstance().addActivity(this);
|
然后就是退出了
只需要在退出的地方
1
| ActivityCollector.getInstance().exit();
|