1. 程式人生 > >Android用戶點擊返回按鈕兩次退出整個APP

Android用戶點擊返回按鈕兩次退出整個APP

gen add toast 觸發 flag res 退出程序 ont sed

最近的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啦~

Android用戶點擊返回按鈕兩次退出整個APP