Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android開發——Activity(活動)的生命周期(上)

Android開發——Activity(活動)的生命周期(上)

編輯:Android開發實例

一、前言

正確理解Activity的生命周期是非常重要的,只有正確理解Activity的生命周期,才能確保應用程序提供一個符合邏輯的的用戶體驗以及正確管理應用程序本身的資源。Android 中的應用程序並不能管理自身的生命周期,而是由系統統一管理的,當然Activity也是這樣子的。在運行時管理以及是否結束Activity進程,Activity的狀態決定了應用程序的優先級。反過來,程序的優先級也影響著在運行時是否會終止Activity以及保持Activity持續運行。

二、活動棧

活動在棧中的位置決定了活動狀態。當一個新的活動啟動時,這個活動就會被當作前景屏幕,並被放到活動棧的棧頂。當用戶觸發“返回”事件或者前景活動關閉時,下一個活動就會移到棧頂並激活。如下圖所示:

                                                       圖1 Android的Activity棧結構圖

之前說過,Android中應用程序的優先級是由其最高優先級的組件(一般就是Activity)決定的。因此當Android需要終止某些應用程序釋放系統資源時,就依據活動棧來決定應用程序優先級的高低,從而終止那些低優先級的應用程序。

三、活動狀態

  • 激活 當一個活動處於活動棧棧頂,它是可見的,可聚焦的,可接受用戶的輸入。Android會試圖不惜一切代價,甚至是終止處於棧底的活動來回收資源,以保證棧頂活動對資源的需求。當有新的活動被激活,這個活動就會被暫停或者停止。
  • 暫停  活動可見,但是不能聚焦,此時活動就處於暫停狀態。當活動暫停時無法接受用戶事件。在極端的情況下,Android會終止一個處於暫停狀態的活動,來回收系統資源。當一個活動被完全覆蓋,它就處於停止狀態。
  • 停止  當一個活動不可見,它就處於停止狀態。活動會將狀態和組件信息保留在內存中。當一個活動轉入停止狀態,我們需要保存數據和UI狀態。一個活動關閉或者退出,就進入不活動狀態。
  • 不活動(睡眠)  活動被關閉後,在重新啟動之前就處於不活動狀態。此狀態的Activity並不會存在活動棧中,在顯示和使用之前需要重新啟動。

Activity 狀態的改變是不確定的,這是完全由Android的內存管理器控制的。Android會事先關閉那些含有處於睡眠狀態,停止狀態甚至是暫停狀態活動的應用程序。為了提供一個良好的用戶體驗,Activity狀態的改變對用戶來說應該是透明的,所以當Activity進入暫停和停止狀態,保存UI狀態和持久化數據是很重要的。一旦活動重新激活,則恢復相關數據。

轉自:http://www.cnblogs.com/halzhang/archive/2010/05/30/1747319.html

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved