Android提高Service優(yōu)先級(jí)的方法分析
本文實(shí)例講述了Android提高Service優(yōu)先級(jí)的方法。分享給大家供大家參考,具體如下:
Android 系統(tǒng)對(duì)于內(nèi)存管理有自己的一套方法,為了保障系統(tǒng)有序穩(wěn)定的運(yùn)信,系統(tǒng)內(nèi)部會(huì)自動(dòng)分配,控制程序的內(nèi)存使用。當(dāng)系統(tǒng)覺得當(dāng)前的資源非常有限的時(shí)候,為了保 證一些優(yōu)先級(jí)高的程序能運(yùn)行,就會(huì)殺掉一些他認(rèn)為不重要的程序或者服務(wù)來釋放內(nèi)存。這樣就能保證真正對(duì)用戶有用的程序仍然再運(yùn)行。如果你的 Service 碰上了這種情況,多半會(huì)先被殺掉。但如果你增加 Service 的優(yōu)先級(jí)就能讓他多留一會(huì),我們可以用 setForeground(true) 來設(shè)置 Service 的優(yōu)先級(jí)。
為什么是 foreground ? 默認(rèn)啟動(dòng)的 Service 是被標(biāo)記為 background,當(dāng)前運(yùn)行的 Activity 一般被標(biāo)記為 foreground,也就是說你給 Service 設(shè)置了 foreground 那么他就和正在運(yùn)行的 Activity 類似優(yōu)先級(jí)得到了一定的提高。當(dāng)讓這并不能保證你得 Service 永遠(yuǎn)不被殺掉,只是提高了他的優(yōu)先級(jí)。
從Android 1.5開始,一個(gè)已啟動(dòng)的service可以調(diào)用startForeground(int, Notification)將service置為foreground狀態(tài),調(diào)用stopForeground(boolean)將service置為 background狀態(tài)。
我們會(huì)在調(diào)用startForeground(int, Notification)傳入?yún)?shù)notification,它會(huì)在狀態(tài)欄里顯示正在進(jìn)行的foreground service。background service不會(huì)在狀態(tài)欄里顯示。
在Android 1.0中,將一個(gè)service置為foreground狀態(tài):
setForeground(true); mNM.notify(id, notification);
將一個(gè)service置為background狀態(tài):
mNM.cancel(id); setForeground(false);
對(duì)比看出,在1.0 API中調(diào)用setForeground(boolean)只是簡單的改變service的狀態(tài),用戶不會(huì)有任何覺察。新API中強(qiáng)制將 notification和改變service狀態(tài)的動(dòng)作綁定起來,foreground service會(huì)在狀態(tài)欄顯示,而background service不會(huì)。
Remote service controller & binding
跨進(jìn)程調(diào)用Service。暫時(shí)不研究。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android編程實(shí)現(xiàn)簡單設(shè)置按鈕顏色的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)簡單設(shè)置按鈕顏色的方法,涉及Android控件布局與屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2017-03-03
Android Notification使用方法總結(jié)
這篇文章主要介紹了Android Notification使用方法總結(jié)的相關(guān)資料,這里提供了四種使用方法,需要的朋友可以參考下2017-09-09
Android之聯(lián)系人PinnedHeaderListView使用介紹
Android聯(lián)系人中的ListView是做得比較獨(dú)特的,這幾天,我把他提取出來了,寫成一個(gè)簡單的例子,留著備用,感興趣的朋友可以參考下哈2013-06-06
深入理解TextView實(shí)現(xiàn)Rich Text--在同一個(gè)TextView設(shè)置不同字體風(fēng)格
本篇文章是對(duì)Android中在同一個(gè)TextView中設(shè)置不同的字體風(fēng)格進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
詳解Android如何實(shí)現(xiàn)自定義的動(dòng)畫曲線
最近在寫動(dòng)畫相關(guān)的篇章,經(jīng)常會(huì)用到 Curve 這個(gè)動(dòng)畫曲線類,那這個(gè)類到底怎么實(shí)現(xiàn)的?如果想自己來一個(gè)自定義的動(dòng)畫曲線該怎么弄?本文將為大家詳細(xì)解答2022-04-04
Android自定義Scrollbar的兩種實(shí)現(xiàn)方式
本文介紹兩種實(shí)現(xiàn)自定義滾動(dòng)條的方法,分別通過ItemDecoration方案和獨(dú)立View方案實(shí)現(xiàn)滾動(dòng)條定制化,文章通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-03-03
Android用HandlerThread模擬AsyncTask功能(ThreadTask)
本文主要講用HandlerThread模擬AsyncTask功能,這里提供實(shí)例代碼以便參考,有需要的小伙伴可以參考下2016-07-07

