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;
                }
          }}
  • 相关阅读:
    AngularJS之开发组件的一些思路
    [译]React Context
    前端好玩技术中转站
    《JavaScript高级程序设计》笔记整理
    React-Router学习整理
    AngularJS中的模板安全与作用域绑定
    React问题总结与归纳
    AngularJS中的按需加载ocLazyLoad
    AngularJS+Node的RESTful之基本实现
    AngularJS中的指令
  • 原文地址:https://www.cnblogs.com/changjl/p/4117882.html
Copyright © 2011-2022 走看看