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

Android 進程生命周期(Process Lifecycle)

Android的5個進程等級(Process Levels)

1) Foreground Process

正處於Activity Resume() 狀態

正處於與bound服務交互的狀態

正處於服務在前台運行的狀態 , (startForeground() 被調用)

Service生命周期函數正在被執行 ( onCreate() , onStart() , onDestroy())

BroadcastReceiver 正在執行onReceive()方法

殺死Foreground Process 需要用戶響應-因為這個安全優先級是最高的

2) Visible Process

Activity 不在前端顯示 , 但也沒有完全隱藏,能夠看得見,比如彈出一個對話框 。(Input Method)

一個bound到visible 或者 foreground 的activity的 Service

3) Service Process

正在運行的,不在上述兩種狀態的Service

4) Background Process

不可見狀態的Activity進程,(onStop()被調用)

5) Empty Process

沒有運行任何Components的進程,保留這個進程主要是為了緩存的需要

具體的應用:

1.不希望系統關掉sevice中斷服務方法 :

如音樂sevice 啟動sevice時調用startForeground()前台啟動,不會被系統關掉,音樂會繼續播放,除非通過人機交互手動確認關掉.

2.空進程是為了做緩存,內存裡記錄一些值,下次打開快。

3.如果又有Service又有Visible Activity怎麼辦?

if a process hosts a service and a visible activity, the process is ranked as a visible process, not a service process.

當進程既有Service 並且 有Visible Activity的時候,進程會被認為是Visible 進程 。

得出結論:優先級高的為准。

Copyright © Linux教程網 All Rights Reserved