在 只有一个activity的情况下,退出安卓程序只需 用finish();或System.exit(0);
但是如果有多个activity要用另外一种方法
之前做了一个应用,有一个跳转加载activity,每次back的时候都会由跳转activity转至主界面。后来做了一个menu想实现退出程序,然后在menu里面实现了System.exit(0),发现无法实现,于是就再跳转加载activity里面添加了finish()方法,呃,结果实现了退出,但是又发现点击back的时候,程序也直接结束了,想了想应该是跳转activity里面finish()的原因。于是在群里问大神,结果解决了这个问题,现在就跟大家分享一下,大牛看到哪里有问题可以指导一下,谢谢。
大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。
public staticclassExitApplication extends Application {
private static ExitApplication instance;
activityList= newArrayList<Activity>();
private ExitApplication() {
}
public static ExitApplicationgetInstance() {
if (instance == null) {
instance = new ExitApplication();
}
return instance;
}
public void addActivity(Activityactivity) {
activityList.add(activity);
}
public void exit() {
for (Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
}
先新建一个这个类。 1. ExitApplication.getInstance().addActivity(this); 最后再在你要结束程序的地方添加 1. ExitApplication.getInstance().exit(); Ok就这样,实现了退出程序。再一次感谢喜欢分享的大牛们,希望能帮到跟我遇到同样问题的同学们 |