Android生命週期包括以下幾個狀態:
onCreate(Bundle savedInstanceState):可以進行一些初始化的工作在activity第一次被創建的時候調用。這裏是你做所有初始化設置的地方──創建視圖、綁定數據至列表等
onStart():Activity顯示在前臺,但還不可與用戶交互
onRestart():在activity停止後,在再次啓動之前被調用。
onResume():取得控制權,可以對此Activity進行操作此時activity位於堆棧頂部,並接受用戶輸入。
onPause():暫停,可見,但不可操作,此方法主要用來將未保存的變化進行持久化,停止類似動畫這樣耗費CPU的動作等
onStop():當activity不再爲用戶可見時調用此方法
onDestroy():在activity銷燬時調用
只有再啓動另外一個Activity的時候纔會進入onPause狀態,而不是想象中的被覆蓋或者不可見同時通過AlertDialog源碼或者Toast源碼我們都可以發現它們實現的原理都是windowmanager.addView();來添加的, 它們都是一個個view ,因此不會對activity的生命週期有任何影響。我是在這吃過虧的,開始還納悶怎麼dialog消失了,沒有走activity的resume方法?原來原因在這
dialog的dismiss和cancel方法都是讓dialog消失,不同的是cancel中調用了dismiss, cancel會回調setOnCancelListener。