Android-Activity-生命周期详解.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

LifeCycle

活動的生命週期

維護一個Activity的生命週期非常重要,因為Activity隨時會被系統回收掉。

生命週期

作者在初級章節中一直努力地傳達給讀者:編寫Android平台的基本應用程式,跟編寫桌

面應用程式的難度,兩者並沒什麼不同。甚至因為Android平台擁有免費、跨平台的開發

工具,使得Android平台應用程式的開發更為單純。

但是請別忘了,Android平台也是個手機作業系統。撇掉其他功能不談,手機的特性,就是

應該能隨時在未完成目前動作的時候,離開正在使用的功能,切換到接電話、接收簡訊模式...

而且在接完電話回來應用程式時,還希望能看到一樣的內容。

現在使用者使用智慧型手機,大多已習慣使用多工(Multi-Task)的作業系統(如Windows

Mobile),可以在用手機聽音樂的同時,也執行其他多個程式。同時執行多個程式有它的明

顯好處,但是也有它的嚴重的缺點。每多執行一個應用程式,就會多耗費一些系統記憶體。

而手機裡的記憶體是相當有限的。當同時執行的程式過多,或是關閉的程式沒有正確釋放掉

記憶體,執行系統時就會覺得越來越慢,甚至不穩定。

為了解決這個問題,Android引入了一個新的機制--生命週期(LifeCycle)。

行程

應用程式(一個個Activity)執行的狀態稱為行程(process)。在Android作業系統中,每

個應用程式都是一個行程。Android系統平台(準確的說是Dalvik虛擬機)會維護一個唯一

的Activity歷史記錄堆疊,並從旁觀察每個應用程式行程。系統平台會依照系統的記憶體

狀況,與Activity的使用狀態,來管理記憶體的使用。

Activity類別除了負責運行程式流程,與操作介面元件之外,最重要的,就是它提供了開發

者控制行程生命週期的函式。我們已經相當習慣在OnCreate(建立行程時的行為)函式中,

加入我們對這個Activity執行流程的控制。在前面遇到的範例中,我們並不需要對除了

OnCreate之外的行為做出改變。不過理解行程的生命週期,將為我們繼續深入Android開

發打下基礎。

為什麼要了解生命週期

Android應用程式的生命週期是由Android框架進行管理,而不是由應用程式直接控制。

通常,每一個應用程式(入口一般會是一個Activity的onCreate方法),都會佔據一個

行程(Process)。當系統記憶體即將不足的時候,會依照優先級自動進行行程(process)的回

收。不管是使用者或開發者,都無法確定的應用程式何時會被回收。

一個Activity類別除了OnCreate函式之外,還預先定義了OnPause(暫停行程時的行為)、

OnResume(繼續行程時的行為)等等的基本行為,當從一個Activity切換到另一個Activity

的時候,原本的Activity將經過一連串的狀態改變。開發者可以在程式中添加一些各狀態

相對應的流程,每次Activity改變狀態時,就會執行相對應的流程。

要讓使用者有好的使用經驗,Activity需要在各個週期點上負責保管狀態、恢復狀態、傳送

資料等工作。

Activity的狀態

Android的虛擬機(VM)是使用堆疊(Stackbased)管理。主要有四種狀態:

*Active(活動)

*Paused(暫停)

*Stopped(停止)

*Dead(已回收或未啟動)

Active(活動)

「Active」狀態是使用者啟動應用程式或Activity後,Activity運行中的狀態。

在Android平台上,同一個時刻只會有一個Activity處於活動(Active)或運行(Running)狀

態。其他的Activity都處於未啟動(Dead)、停止(Stopped)、或是暫停(Pause)的狀態。

Paused(暫停)

「Paused」狀態是當Activity暫時暗下來,退到背景畫面的狀態。

當我們使用Toast、AlertDialog、或是電話來了時,都會讓原本運行的Activity退到背景畫

面。新出現的Toast、AlertDialog等介面

文档评论(0)

132****2812 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档