zoukankan      html  css  js  c++  java
  • Android退出程序时的"再按一次退出"实现

     

    个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比弹出一个对话框是会更人性化的。话不多说上代码:

    第一种:重写onKeyDown来监听:

    [java] view plaincopy
     
    1.        long waitTime = 2000;  
    2. long touchTime = 0;  
    3.   
    4. @Override  
    5. public boolean onKeyDown(int keyCode, KeyEvent event) {  
    6.     if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {  
    7.         long currentTime = System.currentTimeMillis();  
    8.         if((currentTime-touchTime)>=waitTime) {  
    9.             Toast.makeText(this"再按一次退出", Toast.LENGTH_SHORT).show();  
    10.             touchTime = currentTime;  
    11.         }else {  
    12.             finish();  
    13.         }  
    14.         return true;  
    15.     }  
    16.     return super.onKeyDown(keyCode, event);  
    17. }  


    第二种是重写onBackPressed方法直接监听返回键:

    [java] view plaincopy
     
    1.          
    2.        long waitTime = 2000;  
    3. long touchTime = 0;  
    4.   
    5. @Override  
    6. public void onBackPressed() {  
    7.     long currentTime = System.currentTimeMillis();  
    8.     if((currentTime-touchTime)>=waitTime) {  
    9.         Toast.makeText(this"再按一次退出", Toast.LENGTH_SHORT).show();  
    10.         touchTime = currentTime;  
    11.     }else {  
    12.         finish();  
    13.     }  
    14. }  

    实现代码是一样的只是重写的方法不同罢了。

    如果你需要同时重写这两个方法,可能要注意一些问题啦!系统先是onKeyDown,如果return true了,就不会onBackPressed啦!
    路漫漫其修远兮 吾将上下而求索
  • 相关阅读:
    PAT (Basic Level) Practise 1013 数素数
    PAT (Basic Level) Practise 1014 福尔摩斯的约会
    codeforces 814B.An express train to reveries 解题报告
    KMP算法
    rsync工具
    codeforces 777C.Alyona and Spreadsheet 解题报告
    codeforces 798C.Mike and gcd problem 解题报告
    nginx + tomcat多实例
    MongoDB副本集
    指针的艺术(转载)
  • 原文地址:https://www.cnblogs.com/hudabing/p/3110430.html
Copyright © 2011-2022 走看看