国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

故事講解Activity生命周期(貓的一生)

2019-12-12 03:15:13
字體:
來源:轉載
供稿:網友

大家好,關于Android中Activity的生命周期,網上大多數文章基本都是直接貼圖、翻譯API,比較籠統含糊不清。

我就用故事來說一說:

有個人叫User,TA養了幾只貓,有只貓叫Activity。User見證了Activity貓的一生。

User想要一只小貓(想用一些功能),于是讓一只母貓和一只公貓交配(觸摸屏幕打開Activity界面),

之后經過母貓一段時間的孕育(Activity launched),小貓咪出生了(onCreate),取名叫Activity,放在籠子(App)里養。

主人把它抱出來,小貓咪Activity醒來(onStart)睜開眼(onResume),轉轉頭、伸伸爪子、哭鬧著要吃東西...(Activity running)。

然后主人喂食、和它玩(用戶在Activity上的操作)...

User覺得和Activity一起的時間差不多夠了,就(打開新的Activity)把它關進籠子,和其它貓一邊玩去了(Another activity comes into the foreground)。

Activity就開始閉目養神(onPause)...

過了一會兒,主人打開籠子,呼喚它的名字(User returns to the activity),它聽到后馬上睜開眼(onResume)跑過去和主人玩耍(Activity running)...

后來主人又把它關起來然后走了,Activity繼續閉目養神(onPause)...

再后來主人把燈關了(The activity is no longer visible),Activity感覺天黑了就睡了(onStop)...

不知道什么時候,主人又回來了,一邊敲籠子、一邊叫著Activity的名字(User navigates to the activity),

Activity被從美夢中拉回了現實世界,恢復了狀態(onRestart),然后醒來(onStart)睜開眼(onResume)...

就這樣不知不覺過了很久...

有一次主人(按下主頁、多任務或電源按鈕)出遠門了,好久沒回來,家里的食物不夠,很快就被大家吃光了(Apps with higher priority need memory)。

由于Activity很弱小(優先級低)、還被關在籠子里(沒有綁定前臺Service),所以吃到的食物很少。

幾頓饑渴后大家都餓昏了,紛紛進入休克狀態(App process killed)。

主人回來時看到可憐的Activity一動不動地躺著,怎么都叫不醒,就趕緊送去獸醫院搶救(User navigates to the activity)。

醫生給它輸了血和營養等(系統重新分給內存),經過一段時間后Activity終于復活了,它感覺好像重新從媽媽的肚子里出來一樣(onCreate)。

它醒來(onStart)睜開眼(onResume),和主人打打鬧鬧(Activity running),過了一會兒主人就帶著它回家了...

俗話說,大難不死必有后福,之后主人確實對Activity照顧有加。

可是天有不測風云,有一天Activity被一個壞蛋弄死了(The activity is destroyed by the system)。

Activity死了(onDestroy),User很傷心地把它埋了(Activity shut down)...

User很留戀和Activity在一起的時光,心有不甘,于是重新要了一只小貓,名字仍然叫Activity...

Activity一天天長大,主人對它非常寵愛,但它卻越來越叛逆。

終于有一天,主人受夠了,覺得Activity實在太可惡(或者沒有利用價值)就(點擊返回按鈕)把它拋棄了(The activity is finished)...

Activity不適應外部惡劣的環境很快就死了(onDestroy),大自然用風和泥土把它埋葬(Activity shut down)...

這就是Activity貓的一生。

ZBLibrary提供了isAlive()、isRunning()等判斷Activity、Fragment生命周期狀態的方法;

以及runUiThread(Runnable runnable)方法來避免直接runOnUiThread(Runnable runnable)導致在onDestroy后運行崩潰;

還有線程管理類ThreadManager,BaseActivity、BaseFragment內可以runThread(String tag, Runnable runnable)很方便地新開線程,

onDestroy后自動釋放,不用擔心直接new Thread(runnable).start()在onDestroy后還在運行浪費資源,甚至使用被回收的變量導致崩潰等問題。

ZBLibrary-Android快速開發框架

下載試用

ZBLibraryDemoApp.apk

下載地址(覺得不錯就Star支持下吧^_^)

https://github.com/TommyLemon/Android-ZBLibrary

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冀州市| 梁平县| 长葛市| 佛坪县| 郯城县| 石楼县| 沧州市| 嫩江县| 辽阳市| 镇雄县| 同江市| 阳山县| 鄱阳县| 杭锦后旗| 突泉县| 黔西| 宁陕县| 柘城县| 嘉峪关市| 通辽市| 安化县| 大埔区| 石门县| 咸宁市| 广安市| 古浪县| 宕昌县| 怀来县| 盘山县| 八宿县| 南和县| 左权县| 桑日县| 含山县| 时尚| 江山市| 衡南县| 宜宾县| 永春县| 应城市| 临沭县|