当一个android应用程序包含多个activity时,要完全退出android应用程序,便要销毁掉所有的activity,下面是一种网上流传的比较经典完美的方法:
首先要定义一个继承Application的类,代码及注释如下:
//MyApplication类用来存储每一个activity,并实现关闭所有activity的操作
public class MyApplication extends Application {
//定义容activity容器
private List activityList = new LinkedList();
private static MyApplication instance;
private MyApplication(){}
//单例设计模式中取得唯一的MyApplication实例
public static MyApplication getInstance(){
if(instance == null)
instance = new MyApplication();
return instance;
}
//添加activity到容器中
public void addActivity(Activity activity){
activityList.add(activity);
}
//遍历所有的activity并finish
public void exitApp(){
for(Activity activity : activityList){
if(activity != null)
activity.finish();
}
System.exit(0);
}
//清空缓存
@Override
public void onLowMemory() {
super.onLowMemory();
System.gc();
}
}
其次要在各个activity的onCreate方法中加入如下代码:
MyApplication.getInstance().addActivity(this);
将该activity加入到activity容器中。
最后,在实现退出应用程序的地方加入如下代码:
MyApplication.getInstance().exitApp();