Android后退事件的处理

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

重写onBackPressed()方法即可:
代码如下:
       private int clickCount =0;
       @Override
       public void onBackPressed() {
             // TODO Auto-generated method stub
             //super.onBackPressed();
            
             if ( clickCount < 1){
                  Toast.makeText( this , "再按一次后退键退出应用程序!" ,Toast. LENGTH_SHORT ).show();
                   clickCount ++;
            } else {
                  finish();
            }
      }
 
注意,需要将父类的onBackPressed()方法去掉,否则无论后面怎么写当按一次后退键的时候程序就会退出。
但这种写法有不好的地方,就是当用户在不小心按下两次后退键的时候都会退出,这样就不好,没有很好的用户体验。
为此我们将程序改进,当用户在按下第二次次退出键后如果和第一次之间的时间超过1s,我们就不将程序退出,视为无效的操作。
 
改进的代码如下:
private long lastClickTime = 0;
    @Override
       public void onBackPressed() {
             // TODO Auto-generated method stub
             //super.onBackPressed();
      
       if ( lastClickTime <= 0){
            Toast.makeText( this , "再按一次后退键退出应用程序!" ,Toast. LENGTH_SHORT ).show();
             lastClickTime = System.currentTimeMillis();
      } else {
             long currentClickTime = System.currentTimeMillis();
             if (currentClickTime- lastClickTime < 1000){
                  finish();
            } else {
                  Toast.makeText( this , "再按一次后退键退出应用程序!" ,Toast. LENGTH_SHORT ).show();
                   lastClickTime = currentClickTime;
            }
      } }

你可能感兴趣的:(android)