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