如需转载请标明出处: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); } }
在每个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); } }
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
原文地址:http://blog.csdn.net/itas109/article/details/42555069