您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Android生命周期的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
在這期間,他們可能處于激活或者未激活、可見不可見的狀態。這一節會討論activity、service和broadcast receivers的生命周期――包括在生命周期內他們可能的狀態,和如何切換狀態,以及這些狀態對程序被中止或者銷毀的影響。
Android生命周期activity主要有3種狀態
◆當它在屏幕的前臺運行的時候(在任務堆棧的頂端),狀態為 active 或 running 。這個時候用戶的注意力集中在此activity上。
◆當對用戶仍然可見,但是失去焦點的時候,狀態為paused 。在它上面的acitivity要么就是半透明,要么就是沒有占滿屏幕,因此被暫停的acitivity仍然可見。
一個暫停的activity完全是活動的(保持狀態、成員信息、綁定到窗口管理器),但是當系統內存不足的時候會被關閉。
◆當被其他activity完全遮蓋的時候,狀態為 stopped ,它仍可以保存狀態和成員信息。但是當其他程序需要內存的時候它隨時可能被銷毀。
如果一個activity被停止或者暫停了,系統可能會通過調用它的finish方法或者簡單的關閉進程來回收內存。但是當這個activity重新可見的時候,它會重新啟動并返回上一次的狀態。
當activity的狀態改變的時候,它被以下受保護的方法通知:
taskAffinity launchMode allowTaskReparenting clearTaskOnLaunch alwaysRetainTaskState finishOnTaskLaunch
這些方法都是可以重寫來實現特定的要求,就像activity在對象***次初始化的時候必須實現onCreate()方法,來做初始化的工作。很多情況下,需要實現onPause() 來做數據保存以防程序關閉。
Android生命周期方法一起構成了activity的生命周期,你可以監控這個不斷循環的過程,此過程包括3種:activity的整個生命周期 開始于***次調用 onCreate() 結束于調用onDestroy(). activity onCreate()完成全局的狀態的初始化。
在onDestroy()方法里面應該釋放所有的資源。例如,在后臺有一個下載數據的線程,那么應該在程序的onCreate() 調用啟動線程的方法,在onDestroy()里面調用關閉線程的方法。可見的生命周期開始于 onStart() 結束于 onStop()方法。在這個期間,用戶可以在屏幕上看到此acitvity(即使它不在前臺和用戶交互)。
在這個2個方法之間,可以保存需要更新界面的資源。例如,在 onStart()方法注冊了一個 BroadcastReceiver 來監視影響UI的操作,就需要在onStop() 方法里面注銷,因為在調用這個方法后用戶不再需要操作界面。
隨著用戶不斷切換程序的可見和不可見的時候,onStart() 和 onStop() 方法會被調用很多次。前臺Android生命周期開始于 onResume() 方法,結束于 onPause()方法。在這個期間,可以從屏幕上看到,此acitivity在所有其他activity前面。
并且和用戶交互。因為用戶會頻繁的從暫停、恢復狀態切換,例如,當設備待機或者一個新的activity啟動的時候, onPause() 會被調用。當傳入一個新的intent進來的時候, onResume() 方法被調用。因此,這2個方法內的代碼應該是輕量級的。顯示了activity在狀態間切換的軌跡。有色的橢圓表示了activity最常見的狀態。正方形表示了切換狀態時可以監控的方法。
感謝各位的閱讀!關于“Android生命周期的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。