用戶退出應用前給出一個提示是很有必要的,之前同事寫的是再按一次直接退回到桌面,這樣寫其實不太好,有時用戶不想直接退回到桌面,而是想退回到進入這個應用之前的程序,之前因為公司要求在“億業稅務APP”點擊按鈕之后跳轉到另一個“超級網銀”APP,如果用戶未安裝則提示用戶安裝,如果用戶已安裝則跳轉到這個APP。由於之前同事在“超級網銀”這個APP里面寫的是再按一次直接退回到桌面,代碼如下所示:
1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if (keyCode == KeyEvent.KEYCODE_BACK) { 4 exit(); 5 return false; 6 } else { 7 return super.onKeyDown(keyCode, event); 8 } 9 } 10 11 public void exit(){ 12 if (!isExit) { 13 isExit = true; 14 Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); 15 mHandler.sendEmptyMessageDelayed(0, 2000); 16 } else { 17 Intent intent = new Intent(Intent.ACTION_MAIN); 18 intent.addCategory(Intent.CATEGORY_HOME); 19 startActivity(intent); 20 System.exit(0); 21 } 22 }
這樣做的話,當“超級網銀”退出后就直接退回到桌面了,而不是退回到上個應用(億業稅務APP),在經過網上一番搜索之后,找到了解決的辦法:
1 private long exitTime = 0; 2 3 @Override 4 public boolean onKeyDown(int keyCode, KeyEvent event) { 5 if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ 6 if((System.currentTimeMillis()-exitTime) > 2000){ 7 Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); 8 exitTime = System.currentTimeMillis(); 9 } else { 10 finish(); 11 System.exit(0); 12 } 13 return true; 14 } 15 return super.onKeyDown(keyCode, event); 16 }
這樣子的話,當前應用退出后就可以回到上個應用了
