点击两次返回键退出程序_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 点击两次返回键退出程序

点击两次返回键退出程序

 2015/3/13 21:03:07  某某璀  程序员俱乐部  我要评论(0)
  • 摘要:总的来说,实则是使用onKeyDown方法进行监听按钮点击事件,并作出相应处理,一共有两种方式实现该功能。第一种是使用消息传递机制,使用Handle()传递消息的间隔时间内若进行了再次点击返回键则退出程序代码如下:1privatestaticbooleanisExit=false;23HandlermHandler=newHandler(){45@Override6publicvoidhandleMessage(Messagemsg){7//TODOAuto
  • 标签:程序
总的来说,实则是使用onKeyDown方法进行监听按钮点击事件,并作出相应处理,一共有两种方式实现该功能。   第一种是使用消息传递机制,使用Handle()传递消息的间隔时间内若进行了再次点击返回键则退出程序 代码如下:
 1 private static boolean isExit = false;
 2 
 3 Handler mHandler = new Handler(){
 4 
 5     @Override
 6     public void handleMessage(Message msg) {
 7         // TODO Auto-generated method stub
 8         super.handleMessage(msg);
 9         isExit = false;
10     }
11 };
12 
13 @Override
14 public boolean onKeyDown(int keyCode, KeyEvent event){  
15         if (keyCode == KeyEvent.KEYCODE_BACK ) {  
16              exit();  
17              return false;  
18         }  
19         return super.onKeyDown(keyCode, event);  
20           
21     }
22 
23 
24 private void exit() {
25 // TODO Auto-generated method stub
26     if(!isExit){
27         isExit = true;
28         Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
29         mHandler.sendEmptyMessageDelayed(0, 2000);
30     }
31     else{
32         finish();
33         System.exit(0);
34     }
35 }                  

 

第二种方式是计算点击按钮的时间差

 1 @Override
 2 public boolean onKeyDown(int keyCode, KeyEvent event) {
 3     if (keyCode == KeyEvent.KEYCODE_BACK) {
 4         exit();
 5         return false;
 6     }
 7     return super.onKeyDown(keyCode, event);
 8 }
 9 
10 public void exit() {
11     if ((System.currentTimeMillis() - exitTime) > 2000) {
12         Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();
13         exitTime = System.currentTimeMillis();
14     } 
15     else {
16         finish();
17         System.exit(0);
18     }
19 }

 

发表评论
用户名: 匿名