Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Activity按下2次退出,Activity2次退出

Activity按下2次退出,Activity2次退出

編輯:關於android開發

Activity按下2次退出,Activity2次退出


先看下onBackPressed和onKeyDown的區別

在Android上有兩種方法來獲取該按鈕的事件

1.直接獲取按鈕按下事件,此方法兼容Android 1.0到Android 2.1 也是常規方法,直接重寫Activity的onKeyDown方法即可,代碼如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK) { //按下的如果是BACK,同時沒有重復
       Toast.makeText(ml78.this,"返回鍵Back鍵測試",1).show();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

而對於Android 2.0開始又多出了一種新的方法,對於Activity 可以單獨獲取Back鍵的按下事件,直接重寫onBackPressed方法即可,代碼如下

@Override
public void onBackPressed() {
// 這裡處理邏輯代碼,大家注意:該方法僅適用於2.0或更新版的sdk
return;
}

1  現在實現對根Activity按下2此返回鍵實現退出

 

private static boolean isSysExit = false;
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        if(!isSysExit){
            isSysExit = true;
            
            DensityUtil.showToast(this, "再按一次退出");
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    isSysExit =false;
                }
            }, 2000);
        }else {
            finish();
        }
    }

 

2  在根Activity中重寫後退按鈕響應事件,當按後退按鈕的時候把Activity退置到後台

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        //當按下返回鍵時吧Activity退至到後台
        if(keyCode ==KeyEvent.KEYCODE_BACK){
            moveTaskToBack(true);
            return true;
        }
        
        return super.onKeyDown(keyCode, event);
    }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved