zoukankan      html  css  js  c++  java
  • Android后退事件的处理

    当我们想退出应用程序时,一般都会采用按物理按键(后退键)的做法,当用户在按两次后退键的时候就将应用程序退出,即销毁当前的Activity();

    重写onBackPressed()方法即可:
    代码如下:
         privateintclickCount=0;
          @Override
          publicvoidonBackPressed() {
                //TODOAuto-generated method stub
                //super.onBackPressed();
                
                if(clickCount< 1){
                      Toast.makeText(this,"再按一次后退键退出应用程序!",Toast.LENGTH_SHORT).show();
                      clickCount++;
                }else{
                      finish();
                }
          }
     
    注意,需要将父类的onBackPressed()方法去掉,否则无论后面怎么写当按一次后退键的时候程序就会退出。
    但这种写法有不好的地方,就是当用户在不小心按下两次后退键的时候都会退出,这样就不好,没有很好的用户体验。
    为此我们将程序改进,当用户在按下第二次次退出键后如果和第一次之间的时间超过1s,我们就不将程序退出,视为无效的操作。
     
    改进的代码如下:
    privatelonglastClickTime= 0;
       @Override
          publicvoidonBackPressed() {
                //TODOAuto-generated method stub
                //super.onBackPressed();
          
          if(lastClickTime<= 0){
                Toast.makeText(this,"再按一次后退键退出应用程序!",Toast.LENGTH_SHORT).show();
                lastClickTime= System.currentTimeMillis();
          }else{
                longcurrentClickTime = System.currentTimeMillis();
                if(currentClickTime-lastClickTime< 1000){
                      finish();
                }else{
                      Toast.makeText(this,"再按一次后退键退出应用程序!",Toast.LENGTH_SHORT).show();
                      lastClickTime= currentClickTime;
                }
          }}
  • 相关阅读:
    支付方法及注意事项
    网站负载均衡策略
    工作成长
    java内存机制
    关于前途的一些思考
    git记录
    关于博客
    如何为公司创造价值?
    遍历集合方法总结
    二叉树和红黑二叉树
  • 原文地址:https://www.cnblogs.com/changjl/p/4117882.html
Copyright © 2011-2022 走看看