天天看點

Home 和Back鍵下Activity 生命周期

1. Home 和Back 鍵下Activity 生命周期是不一樣的 

   按下Home 鍵,Activity 執行個體沒有被Destroy. 而 Back 鍵,Activity  會被Destroy. 

   具體詳細介紹可以參考 http://blog.csdn.net/lixiang0522/article/details/7557558

2. 重寫Back 鍵方法,使Activity 行為與Home 鍵相同

    按下Back 鍵,Activity 不被Destroy,等App下次進入時, 有更順暢的UI體驗。 可以重寫Activity  onBackPressed() 方法

    有兩種方法:

     1.  使用MoveTaskToBack(true)

// 2.0 and above

@Override

public void onBackPressed() {

    moveTaskToBack(true);

}

// Before 2.0

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) {

        moveTaskToBack(true);

        return true;

    }

    return super.onKeyDown(keyCode, event);

}

2. 使用Intent 

public void onBackPressed() { 

        //實作Home鍵效果 

        //super.onBackPressed();這句話一定要注掉,不然又去調用預設的back處理方式了 

        Intent i= new Intent(Intent.ACTION_MAIN); 

        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

        i.addCategory(Intent.CATEGORY_HOME); 

        startActivity(i);  

    }

具體方法可以參考: 

http://blog.csdn.net/kitty_landon/article/details/45718329

http://stackoverflow.com/questions/2000102/override-back-button-to-act-like-home-button