android笔记3:activity的生命周期(转)
我們知道Activity從創建到銷毀有多種狀態,從一種狀態到另一種狀態時會激發相應的回調方法,這些回調方法包括:
onCreate 、onStart 、onResume 、onPause 、onStop 、onDestroy 、onRestart
下面這張圖就是我的記憶的方式:
不難看出,其實這些方法都是兩兩對應的,onCreate創建與onDestroy銷毀;onStart可見與onStop不可見;onResume可編輯(即焦點)與onPause;這6個方法是相對應的,那么就只剩下一個onRestart方法了,這個方法在什么時候調用呢?答案就是:在Activity被onStop后,但是沒有被onDestroy,在再次啟動此Activity時就調用onRestart(而不再調用onCreate)方法;如果被onDestroy了,則是調用onCreate方法。
這樣大家就應該能夠很容易的記住這些方法了。下面再通過一個比喻來看兩個Activity的切換過程。
我們把Activity比作一本書,我們要看書,首先從書架上取出書(onCreate),然后放到桌上(onStart),接著打開書(onResume),這樣我們就可以看書并可以在書本上寫字了。
如果這時候我們要啟動另一個Activity,也就是要看另一本書,首先我們放下手中的筆或者說合上書(onPause),然后從書架上拿下另一本書(書2:onCreate),然后把書本2放到桌上并打開(書2:onStart、onResume)。
如果書本1被書本2完全蓋住了,即不可見了,就調用書本1的onStop;而如果書本2較小,沒有完全蓋住書本1,則不會調用。
我們還可以把書本1放回書架上,即onDestroy。
另外,還有一點要注意,Activity在處于onPause、onStop、onDestroy狀態下,系統都可以銷毀該Activity所在進程,所以我們在處理一些要保存的數據時,必須在onPause方法中進行,因為onStop和onDestroy方法不一定會被調用。
onDestroy被調用通常有兩種情況:1.系統使用filish()2.系統資源不夠用。
OK,就說這么多……
轉載于:https://www.cnblogs.com/tangxiaosen/archive/2011/09/01/2161699.html
總結
以上是生活随笔為你收集整理的android笔记3:activity的生命周期(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php时间函数
- 下一篇: WCF常见问题及解决方案