1. 程式人生 > >Android Activity生命週期中的7個階段

Android Activity生命週期中的7個階段

Android Activity生命週期中可認為分為7個階段;用7個函式原型來描述吧
protected void onCreate(Bundle savedInstanceState)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()

activity主要生命週期的方法說明:
onCreate(Bundle savedInstanceState):建立activity時呼叫。設定在該方法中,還以Bundle的形式提供對以前儲存的任何狀態的訪問!
onStart():activity變為在螢幕上對使用者可見時呼叫。
onResume():activity開始與使用者互動時呼叫(無論是啟動還是重新啟動一個活動,該方法總是被呼叫的)。
onPause():activity被暫停或收回cpu和其他資源時呼叫,該方法用於儲存活動狀態的,也是保護現場,壓棧吧!
onStop():activity被停止並轉為不可見階段及後續的生命週期事件時呼叫。
onRestart():重新啟動activity時呼叫。該活動仍在棧中,而不是啟動新的活動。
onDestroy():activity被完全從系統記憶體中移除時呼叫,該方法被呼叫可能是因為有人直接呼叫onFinish()方法或者系統決定停止該活動以釋放資源!

public class MyActivity extends Activity {

     // 在Activity生命週期開始時被呼叫
    public void onCreate(Bundle icicle) {
    }

    // onCreate完成後被呼叫,用來回復UI狀態
    public void onRestoreInstanceState(Bundle savedInstanceState) {
    }


    //當activity從停止狀態重新啟動時呼叫
    public void onRestart(){
    }

    //當activity對使用者即將可見的時候呼叫。
    public void onStart(){
    }


     //當activity將要與使用者互動時呼叫此方法,此時activity在activity棧的棧頂,使用者輸入已經可以傳遞給它
    public void onResume(){
    }


    // Activity即將移出棧頂保留UI狀態時呼叫此方法
    public void onSaveInstanceState(Bundle savedInstanceState) {
    }


    //當系統要啟動一個其他的 activity時呼叫(其他的activity顯示之前),這個方法被用來提交那些持久資料的改變、停止動畫、和其他佔用 CPU資源的東西。由於下一個activity在這個方法返回之前不會resumed,所以實現這個方法時程式碼執行要儘可能快。
    public void onPause(){
    }

    //當另外一個activity恢復並遮蓋住此activity,導致其對使用者不再可見時呼叫。一個新activity啟動、其它activity被切換至前景、當前activity被銷燬時都會發生這種場景。
    public void onStop(){
    }

    //在activity被銷燬前所呼叫的最後一個方法,當程序終止時會出現這種情況
    public void onDestroy(){
    }