歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 生命周期解析

每一個運行在Android平台的進程都位於一個棧中。使用一個位於前台的Activity時,托管該Activity的系統進程位於棧的頂端,而上一個進程(托管在前台運行的任何Activity的進程)下移一個位置。

1.理解進程與活動之間的關系

當Android平台認為需要回收資源時,它通過一系列的步驟處理進程(以及它們的托管活動),並根據一組簡單的優先級決定殺死哪些進程。

(1)托管前台Activity的進程優先級最高

(2)托管可見但非前台Activity的進程優先級次之

(3)托管後台的Activity的進程優先級再次之

(4)未托管任何Activity的進程優先級最低

可以用adb shell dumpsys activity命令來查看進程的詳細信息。

2.活動的生命周期

Android提供的每個生命周期的方法都有不同的用途,這些生命周期的方法分為活動的前台階段,可見階段或整個生命周期階段被調用。

a.   在前台階段,Activity在屏幕上可見並位於所有其他Activity之上(此時用戶可以與該Activity交互以執行任務)。

b.   在可見階段,Activity仍在屏幕上可見,但是但沒有在頂端且不能與用戶交互(eg. 此時有一個對話框或浮動框位於Activity之上)。

c.   整個生命階段引用的則是指應用程序沒有在屏幕顯示時,應用程序創建之前以及關閉應用程序而應用程序消失之後可能調用的方法。

Android Activity的主要生命周期方法及用途

onCreate():創建Activity時調用。設置在該方法中進行。還以bundle的形式提供對以前存儲的任何狀態的訪問。

onRestart():重新啟動Activity時調用。該活動仍在棧中,而不是啟動一個新的活動。

onStart():Activity變為在屏幕上可見時調用。

onResume():Activity開始與用戶交互時調用(無論是啟動還是重新啟動一個活動,該方法總是被調用)。

onPause():Activity被暫停或收回CPU和其他資源時調用。該方法是用來保存活動狀態的地方,以便Activity被重新啟動時可以具有與其退出時相同的狀態。

onStop():Activity被停止並被轉換為不可見階段及後續的生命周期事件調用。

onDestory():Activity被完全從系統內存中移除時調用。該方法被調用可能是因為有人直接調用onFinish()方法或系統決定停止該Activity。

Copyright © Linux教程網 All Rights Reserved