在Android应用中,有时候我们经常需要退出整个应用程序释放资源,而不是单纯地退出某一个Activity,我在网上搜索了一些资料,结合自身的体验,比较方便好用的是如下实例:
新建SysApplication类,具体如下,注释较多,就不多说了
package com.llp.dataprocess.util;
import java.util.LinkedList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
public class SysApplication extends Application {
// 用于存放当前所有的Activity
private List<Activity> mList = new LinkedList<Activity>();
// SysApplication类型的静态常量,用于在某一个Acitivty中
//获取instance并调用SysApplication的类方法
private static SysApplication instance;
private SysApplication() {
}
// 静态方法,用于获取静态常量 instance
public synchronized static SysApplication getInstance() {
if (null == instance) {
instance = new SysApplication();
}
return instance;
}
// add Activity
public void addActivity(Activity activity) {
mList.add(activity);
}
// 退出整个应用的方法
public void exit() {
try {
for (Activity activity : mList) {
if (activity != null)
activity.finish();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
}
}
public void onLowMemory() {
super.onLowMemory();
System.gc();
}
}
具体使用的时候,在每个Activity的OnCrate方法里面调用如下:
SysApplication.getInstance().addActivity(this);
每创建一个Activity,就会添加到 List 中
在想要退出应用的地方调用如下:
SysApplication.getInstance().exit();