如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
前言:
前面使用的退出程序用的是finish(),它只能退出当前Activity。如果Activity一多就不能一次性退出了。
1、退出应用程序工具类
/**
*
* @author itas109
* TODO 用于完全退出应用程序
*/
public class ExitAPPUtils extends Application {
private List<Activity> activityList = new LinkedList<Activity>();
private static ExitAPPUtils instance;
private ExitAPPUtils() {
}
// 单例模式中获取唯一的ExitAPPUtils实例
public static ExitAPPUtils getInstance() {
if(null == instance) {
instance =new ExitAPPUtils();
}
return instance;
}
// 添加Activity到容器中
public void addActivity(Activity activity) {
activityList.add(activity);
}
// 遍历所有Activity并finish
public void exit() {
for(Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
}
2、使用方法
在每个Activity的onCreate方法里添加如下代码
ExitAPPUtils.getInstance().addActivity(this);
定义时间
private long exitTime = 0;
退出代码,放到需要退出的Activity中。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if((System.currentTimeMillis()-exitTime) > 2000){
ToastUtils.show(getApplicationContext(), R.string.exit_hint);
exitTime = System.currentTimeMillis();
} else {
ExitAPPUtils.getInstance().exit();
//finish();
//System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
}
4、效果图
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033