最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中進(jìn)程生命周期的優(yōu)先級(jí)

 更新時(shí)間:2016年01月17日 09:54:27   投稿:hebedich  
這篇文章主要介紹了Android中進(jìn)程生命周期的優(yōu)先級(jí)的相關(guān)資料,需要的朋友可以參考下

學(xué)習(xí)Android最好的途徑當(dāng)然是強(qiáng)大的官方文檔了,其中在Processes and Threads一節(jié)中對(duì)于進(jìn)程生命周期淘汰優(yōu)先級(jí),有著詳細(xì)的介紹。就不給大家轉(zhuǎn)帖了,直接放譯文吧,如下:

Android系統(tǒng)會(huì)盡量維持進(jìn)程的存在,但畢竟資源有限,當(dāng)系統(tǒng)資源告急的時(shí)候會(huì)淘汰一部分進(jìn)程。淘汰順序的憑據(jù)就是系統(tǒng)進(jìn)程的優(yōu)先級(jí)了,優(yōu)先級(jí)越高越不容易被殺死,反之亦然。系統(tǒng)總共為進(jìn)程分了五個(gè)優(yōu)先級(jí),如下

一、前臺(tái)進(jìn)程(進(jìn)程滿足如下任一條件即為前臺(tái)進(jìn)程):

1. 擁有 一個(gè)執(zhí)行了onresume方法正在與用戶交互(獲得焦點(diǎn))的Activity
2. 擁有一個(gè)service,這個(gè)Service跟正在與用戶交互的Activity進(jìn)行了綁定
3. 擁有一個(gè)Service,這個(gè)Service調(diào)用了startForeground()方法
4. 擁有一個(gè)正在執(zhí)行onCreate()、onStart()或者onDestroy()方法中的任意一個(gè)的Service
5. 擁有一個(gè)正在執(zhí)行onReceive方法的BroadcastReceiver

二、可見進(jìn)程:

1. 擁有一個(gè)執(zhí)行了onPause方法,但仍然可見的Activity
2. 擁有一個(gè)Service,這個(gè)Service跟一個(gè)可見的或前臺(tái)的Activity綁定了

三、服務(wù)進(jìn)程:

擁有一個(gè)通過startService方法啟動(dòng)的Service的進(jìn)程

四、后臺(tái)進(jìn)程:

擁有一個(gè)后臺(tái)Activity(onStop方法被調(diào)用)的進(jìn)程

五、空進(jìn)程:

沒有擁有任何活動(dòng)的應(yīng)用組件的進(jìn)程,也就是沒有任何Service和Activity在運(yùn)行

另外,還有一些需要補(bǔ)充的,當(dāng)一個(gè)進(jìn)程滿足多個(gè)進(jìn)程條件時(shí),當(dāng)然是取優(yōu)先級(jí)更高的為準(zhǔn),比如一個(gè)進(jìn)程同時(shí)滿足前臺(tái)進(jìn)程和服務(wù)進(jìn)程的條件,這個(gè)進(jìn)程就是個(gè)前臺(tái)進(jìn)程,這點(diǎn)很好理解。另外,進(jìn)程的優(yōu)先級(jí)也不是一成不變的,而且有時(shí)候會(huì)隨著一些相關(guān)的因素而發(fā)生改變;比如,某進(jìn)程A滿足前臺(tái)進(jìn)程的第二個(gè)條件,進(jìn)程A擁有一個(gè)service,這個(gè)Service跟正在與用戶交互的Activity進(jìn)行了綁定;當(dāng)這個(gè)Activity變成可見狀態(tài)了,進(jìn)程A便不再滿足前臺(tái)進(jìn)程的條件,進(jìn)而因滿足可見進(jìn)程的第二個(gè)條件,進(jìn)程A變成了可見進(jìn)程??傊?,在掌握了基本概念之后,需要細(xì)心的分析具體的情況,方能得出正確的判斷。

進(jìn)程優(yōu)先級(jí)的額外說明

1. 系統(tǒng)會(huì)賦予進(jìn)程盡可能高的優(yōu)先級(jí). 例如一個(gè)進(jìn)程既包含已啟動(dòng)的service, 也包含前臺(tái)activity, 則這個(gè)進(jìn)程會(huì)被視為前臺(tái)進(jìn)程.

2. 由于組件之間的依賴性, 進(jìn)程的優(yōu)先級(jí)有可能被提高. 假如進(jìn)程A服務(wù)于進(jìn)程B, 則進(jìn)程A的優(yōu)先級(jí)不能低于進(jìn)程B. 比如, 進(jìn)程A的ContentProvider組件正在服務(wù)于進(jìn)程B的某個(gè)組件, 或者進(jìn)程A的service組件和進(jìn)程B的某個(gè)組件綁定等, 這些情況下, 進(jìn)程A的優(yōu)先級(jí)都不會(huì)低于進(jìn)程B(如果按照優(yōu)先級(jí)規(guī)則, 進(jìn)程A的優(yōu)先級(jí)確實(shí)低于進(jìn)程B, 則系統(tǒng)會(huì)選擇提高進(jìn)程A的優(yōu)先級(jí)到和進(jìn)程B相同).

3. 由于服務(wù)進(jìn)程的優(yōu)先級(jí)高于后臺(tái)進(jìn)程, 因此如果activity需要執(zhí)行耗時(shí)操作, 最好還是啟動(dòng)一個(gè)service來完成. 當(dāng)然, 在activity中啟動(dòng)子線程完成耗時(shí)操作也可以, 但是這樣做的缺點(diǎn)在于, 一旦activity不再可見, activity所在的進(jìn)程成為后臺(tái)進(jìn)程, 而內(nèi)存不足時(shí)后臺(tái)進(jìn)程隨時(shí)都有可能被系統(tǒng)殺死(但是啟動(dòng)service完成耗時(shí)操作會(huì)帶來數(shù)據(jù)交互的問題, 比如耗時(shí)操作需要實(shí)時(shí)更新UI控件的狀態(tài)的話, service就不是一個(gè)好的選擇). 基于同樣的考慮, 在BroadcastReceiver中也不應(yīng)該執(zhí)行耗時(shí)操作, 而應(yīng)該啟動(dòng)service來完成(當(dāng)然, BroadcastReceiver的生命周期過于短暫, 也決定了不能在其中執(zhí)行耗時(shí)操作).

相關(guān)文章

  • Android自定義控件ListView下拉刷新的代碼

    Android自定義控件ListView下拉刷新的代碼

    今天小編就為大家分享一篇關(guān)于Android自定義控件ListView下拉刷新的代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 融會(huì)貫通Android?Jetpack?Compose中的Snackbar

    融會(huì)貫通Android?Jetpack?Compose中的Snackbar

    這篇文章主要為大家介紹了融會(huì)貫通Android?Jetpack?Compose中的Snackbar方法及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android 圖片網(wǎng)格布局控件示例代碼

    Android 圖片網(wǎng)格布局控件示例代碼

    本篇文章主要介紹了Android 圖片網(wǎng)格布局控件示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • BroadcastReceiver動(dòng)態(tài)注冊(cè)案例詳解

    BroadcastReceiver動(dòng)態(tài)注冊(cè)案例詳解

    這篇文章主要為大家詳細(xì)介紹了BroadcastReceiver動(dòng)態(tài)注冊(cè)案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android 圖文詳解Binder進(jìn)程通信底層原理

    Android 圖文詳解Binder進(jìn)程通信底層原理

    Android系統(tǒng)中,多進(jìn)程間的通信都是依賴于底層Binder IPC機(jī)制,Binder機(jī)制是一種RPC方案。例如:當(dāng)進(jìn)程A中的Activity與進(jìn)程B中的Service通信時(shí),就使用了binder機(jī)制
    2021-10-10
  • 淺談Android RecyclerView 間距全適配

    淺談Android RecyclerView 間距全適配

    本篇文章主要介紹了淺談Android RecyclerView 間距全適配,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Flutter實(shí)現(xiàn)單選,復(fù)選和開關(guān)組件的示例代碼

    Flutter實(shí)現(xiàn)單選,復(fù)選和開關(guān)組件的示例代碼

    在App開發(fā)過程中,選擇交互是非常常見的,今天主要介紹下關(guān)于選擇的三個(gè)組件的使用:開關(guān)、單選和復(fù)選,感興趣的小伙伴可以了解一下
    2022-04-04
  • Android獲取手機(jī)配置信息具體實(shí)現(xiàn)代碼

    Android獲取手機(jī)配置信息具體實(shí)現(xiàn)代碼

    下面為大家介紹下使用android獲取手機(jī)配置信息的具體過程,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-06-06
  • 最新評(píng)論

    大港区| 沿河| 万山特区| 惠东县| 大城县| 肥乡县| 朝阳区| 望都县| 台北市| 平邑县| 如东县| 丰原市| 大厂| 晋中市| 皮山县| 左贡县| 库尔勒市| 湾仔区| 酒泉市| 沁阳市| 侯马市| 金阳县| 广丰县| 河曲县| 麻江县| 克什克腾旗| 穆棱市| 马尔康县| 铜山县| 太保市| 上栗县| 新河县| 邹城市| 望奎县| 隆子县| 阜阳市| 榕江县| 军事| 建湖县| 兴山县| 江油市|