我们软件一般都会有多个activity,如果是应用软件的话,那么为了交互的友好,应该在每个界面都会有退出按钮才可以。
在安卓里面,关闭一个activity有多种方法(初学者的方法):
1直接在activity里调用finish()方法。
2调用System.exit()
但是笔者试了一下,这两个都没法完全的关闭应用程序,只能关闭当前的activity,也就是说如果你的应用程序只有一个activity,那么也许有效,但是有多个的话,那么就没什么效果。在网上搜了一下资料,看了不少实验的方法,发现还是如下的方法比较靠谱。
首先要了解的是,我们安卓的activity的管理办法。想象有一个栈,当应用开起来的时候,那么这个应用的第一个界面(A1),也就是activity对象会被放进栈底。如果在A1中切换到另一个界面(A2)的话,那么A2也会入栈,A1暂停,运行A2,有了这么一个栈,我们就可以通过循环调用来关闭所有的activity。
关闭的方法:
第一步,新建一个类,实现关闭的方法,笔者新建的是类Deaboway:
public class Deaboway extends Application {
private List<Activity> mainActivity = new ArrayList<Activity>();
public List<Activity> MainActivity() {
return mainActivity;
}
public void addActivity(Activity act) {
mainActivity.add(act);
}
public void finishAll() {
for (Activity act : mainActivity) {
if (!act.isFinishing()) {
act.finish();
}
}
}
}
第二步,在每个你所定义的activity类中的onCreate方法里加上这么两行代码,代码在super调用之后:
Deaboway appState = (Deaboway)this.getApplication();
appState.addActivity(this);
第三步,在你所有的关闭事件里,使用如下代码关闭:
Deaboway appState = (Deaboway)getApplicationContext();
appState.finishAll();
代码亲测,到现在都没什么问题出现,如果有什么问题,请好心提出。