sticky什么意思? 安卓系統(tǒng)如何讓一個(gè)程序一直后臺(tái)運(yùn)行?
安卓系統(tǒng)如何讓一個(gè)程序一直后臺(tái)運(yùn)行?在Android開(kāi)發(fā)過(guò)程中,每次調(diào)用startservice(intent)時(shí),都會(huì)調(diào)用服務(wù)對(duì)象的onstartcommand(intent,int,int)方法,
安卓系統(tǒng)如何讓一個(gè)程序一直后臺(tái)運(yùn)行?
在Android開(kāi)發(fā)過(guò)程中,每次調(diào)用startservice(intent)時(shí),都會(huì)調(diào)用服務(wù)對(duì)象的onstartcommand(intent,int,int)方法,然后在onstartcommand方法中進(jìn)行一些處理。然后我們注意到這個(gè)函數(shù)有一個(gè)int返回值
從Android官方文檔中,我們知道onstartcommand有四個(gè)返回值:
startuuuusticky:如果服務(wù)進(jìn)程被終止,服務(wù)的狀態(tài)保持在start狀態(tài),但是傳遞的intent對(duì)象不會(huì)被保留。然后系統(tǒng)將嘗試重新創(chuàng)建服務(wù)。由于服務(wù)狀態(tài)處于start狀態(tài),因此在創(chuàng)建服務(wù)后將調(diào)用onstartcommand(intent,int,int)方法。如果在此期間沒(méi)有向服務(wù)傳遞啟動(dòng)命令,則參數(shù)intent將為null。
啟動(dòng)“非粘性”:“非粘性”。使用此返回值時(shí),如果在執(zhí)行onstart命令后服務(wù)異常終止,系統(tǒng)將不會(huì)自動(dòng)重新啟動(dòng)服務(wù)。
開(kāi)始重新傳送意圖:重新傳輸意圖。使用此返回值時(shí),如果在執(zhí)行onstart命令后服務(wù)異常終止,系統(tǒng)將自動(dòng)重新啟動(dòng)服務(wù)并傳入intent的值。
START_uuSticky兼容性:START_uSticky是STICKY的兼容版本,但不能保證服務(wù)在終止后可以重新啟動(dòng)。
今天的Android手機(jī),只要長(zhǎng)時(shí)間按home鍵,通常會(huì)列出最近的任務(wù),在這里你可以殺掉所有的進(jìn)程
所以不好一直在后臺(tái)運(yùn)行,但是你通常可以通過(guò)廣播來(lái)激活你的服務(wù)