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