Android中的“再按一次返回鍵退出程序”實現


用戶退出應用前給出一個提示是很有必要的,之前同事寫的是再按一次直接退回到桌面,這樣寫其實不太好,有時用戶不想直接退回到桌面,而是想退回到進入這個應用之前的程序,之前因為公司要求在“億業稅務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 }

 

 這樣子的話,當前應用退出后就可以回到上個應用了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM