Android用户点击返回按钮两次退出整个APP

最近的APP项目有一个需求就是连续点击两次返回按钮,退出整个APP,而不是返回到上一个页面,这个连续是有时间限制的,在我的项目里,我设置成2秒钟,如果两秒之内点击了两次,就代表用户想要退出整个APP,如果大于两秒则不会触发该效果。

实现方法是:

重写Activity里的onBackPressed方法,首先判断用户连续两次点击的时间差,如果小于两秒就要退出整个APP,否则不会退出,首先判断Android手机的版本,如果大于2.1,则退出app的方法就是回到屏幕主页,调用的方法如下;小于2.1版本的Android手机退出APP的方法就是调用ActivityManager的restartPackage方法。

private long exitTime = 0;
@Override
public void onBackPressed() {
    if ((System.currentTimeMillis() - exitTime) > 2000) {
        Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
        exitTime = System.currentTimeMillis();
    } else {
        //彻底关闭整个APP
        int currentVersion = android.os.Build.VERSION.SDK_INT;
        if (currentVersion > android.os.Build.VERSION_CODES.ECLAIR_MR1) {
            Intent startMain = new Intent(Intent.ACTION_MAIN);
            startMain.addCategory(Intent.CATEGORY_HOME);
            startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(startMain);
            System.exit(0);
        } else {// android2.1
            ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
            am.restartPackage(getPackageName());
        }
    }
}

这样就可以实现连续点击两次返回按钮退出整个APP啦~ 

posted @ 2018-09-22 17:13  云中雀  阅读(1912)  评论(0编辑  收藏  举报