Android 实现完全退出程序
一、退出应用程序工具类
public class ExitAPPUtils {
private List activityList = new LinkedList();
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 (Object activity : activityList) {
((Activity)activity).finish();
}
System.exit(0);
}
}
二、用法
在每个 Activity 的 onCreate() 方法里添加如下代码:
ExitAPPUtils.getInstance().addActivity(this);
三、退出代码
放到需要退出的Activity中。
//记录用户首次点击返回键的时间
private long firstTime = 0;
/**
* 第一种解决办法 通过监听keyUp
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
long secondTime = System.currentTimeMillis();
if (secondTime - firstTime > 2000) {
Toast.makeText(LoginActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
firstTime = secondTime;
return true;
} else {
ExitAPPUtils.getInstance().exit();
//finish();
//System.exit(0);
}
}
return super.onKeyUp(keyCode, event);
}