Android Activity生命週期

//當Activity展示給用戶看到的時候被調用。如果本Activity處於Activity棧的頂部,則onStrat方法緊隨着onResume方法的調用而調用
    public void onStart()
    {
     super.onStart();
    }
    //當Activity從停止運行的狀態到開發運行的轉檯的時候被調用
    public void onRestart()
    {
     super.onRestart();
    }
    //當Activity開始將與用戶進行交互時被調用
    public void onResume()
    {
     super.onResume();
    }
    //當其它Activity被激活時,當前Activity的onPause將被調用
    public void onPause()
    {
     super.onPause();
    }
    //當前Activity不再對用戶可見的時候被調用(即可能是一個新的Activity被激活,或者是當前的Activity被銷燬
    public void onStop()
    {
     super.onStop();
    }
    //當前Activity被銷燬之前。要銷燬一個Activity,可以調用finish()方法。
    public void onDestroy()
    {
     super.onDestroy();
    }

從代碼和註釋來看,相信也大概對Activity的生命週期有了一個很好的瞭解,但是對於這幾個方法什麼時候被調用仍然是一頭霧水?現在就看看以下的過程:

假如程序裏面含有Activity,Activity作爲一個主頁面:

程序調用  ---->  程序退出  :

               onCreate() -> onStart() ->onResume()

                ->按回退鍵,退出程序 ->onPause() ->onStop()->onDestroy()

 

程序調用  ---->  按Home或者是Menu熱鍵

               onCreate() -> onStart() -> onResume()

                -> 按Home或者是Menu熱鍵 -> onPause() ->onStop()

   這個時候Activity並沒有銷燬調,只是放到了後臺上,當然如果你長時間沒有再調用的話,系統又要需要內存來做其它事的話,最後這個Activity也是會銷燬的!

 

程序調用  ---->  按Home或者是Menu熱鍵  ---->  程序再次調用

                onRestart() -> onStart() -> onResume()

                 -> ..............(後面的方法跟上面的兩種沒有區別)

 

注意對比一下各種情況程序的調用和退出所調用的方法,自然很容易對Activity的生命週期有深入的瞭解,在應用或者是遊戲的開發上也會有很大的作用!


發佈了28 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章