码迷,mamicode.com
首页 > 移动开发 > 详细

Android中的“再按一次返回键退出程序”实现

时间:2015-07-04 15:18:04      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

用户退出应用前给出一个提示是很有必要的,之前同事写的是再按一次直接退回到桌面,这样写其实不太好,有时用户不想直接退回到桌面,而是想退回到进入这个应用之前的程序,之前因为公司要求在“亿业税务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 }

 

 这样子的话,当前应用退出后就可以回到上个应用了

Android中的“再按一次返回键退出程序”实现

标签:

原文地址:http://www.cnblogs.com/shizxq/p/4620654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!