Android Service防殺

一.在onStartCommand方法,返回START_STICKY

1笼痹、START_STICKY

在運行onStartCommand后service進(jìn)程被kill后畏铆,那將保留在開始狀態(tài)默伍,但是不保留那些傳入的intent传货。不久后service就會再次嘗試重新創(chuàng)建,因為保留在開始狀態(tài)莉给,在創(chuàng)建 service后將保證調(diào)用onstartCommand毙石。如果沒有傳遞任何開始命令給service,那將獲取到null的intent颓遏。

2徐矩、START_NOT_STICKY

在運行onStartCommand后service進(jìn)程被kill后,并且沒有新的intent傳遞給它叁幢。Service將移出開始狀態(tài)滤灯,并且直到新的明顯的方法(startService)調(diào)用才重新創(chuàng)建。因為如果沒有傳遞任何未決定的intent那么service是不會啟動,也就是期間onstartCommand不會接收到任何null的intent鳞骤。

3窒百、START_REDELIVER_INTENT

在運行onStartCommand后service進(jìn)程被kill后,系統(tǒng)將會再次啟動service豫尽,并傳入最后一個intent給onstartCommand篙梢。直到調(diào)用stopSelf(int)才停止傳遞intent。如果在被kill后還有未處理好的intent美旧,那被kill后服務(wù)還是會自動啟動渤滞。因此onstartCommand不會接收到任何null的intent。

二.通過Notification 提高進(jìn)程優(yōu)先級

在onStartCommand中創(chuàng)建Notification是Service變成前臺進(jìn)程陈症,代碼如下:
Notification notification = new Notification(R.drawable.ic_launcher,
getString(R.string.app_name), System.currentTimeMillis());

     PendingIntent pendingintent = PendingIntent.getActivity(this, 0,
     new Intent(this, AppMain.class), 0);
     notification.setLatestEventInfo(this, "uploadservice", "請保持程序在后臺運行",
     pendingintent);
     startForeground(0x111, notification);

三.onDestroy方法里重啟service

service +broadcast 方式蔼水,就是當(dāng)service走ondestory的時候震糖,發(fā)送一個自定義的廣播录肯,當(dāng)收到廣播的時候,重新啟動service吊说;

           <intent-filter>
               <action android:name="android.intent.action.BOOT_COMPLETED" />
               <action android:name="android.intent.action.USER_PRESENT" />
               <action android:name="com.dbjtech.waiqin.destroy" />//這個就是自定義的action
           </intent-filter>
       </receiver>

在onDestroy時:

    @Override
    public void onDestroy() {
        stopForeground(true);
        Intent intent = new Intent("com.dbjtech.waiqin.destroy");
        sendBroadcast(intent);
        super.onDestroy();
    }

在BootReceiver里

public class BootReceiver extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("com.dbjtech.waiqin.destroy")) {
            //TODO
            //在這里寫重新啟動service的相關(guān)操作
                startUploadService(context);
        }
 
    }
 
}

也可以直接在onDestroy()里startService

    @Override
    public void onDestroy() {
 
         Intent sevice = new Intent(this, MainService.class);
         this.startService(sevice);
 
        super.onDestroy();
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末论咏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子颁井,更是在濱河造成了極大的恐慌厅贪,老刑警劉巖雅宾,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眉抬,死亡現(xiàn)場離奇詭異蜀变,居然都是意外死亡库北,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門情屹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杂腰,“玉大人,你說我怎么就攤上這事∥砀ぃ” “怎么了芹橡?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我珠移,道長,這世上最難降的妖魔是什么末融? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任勾习,我火速辦了婚禮乾颁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巴席。我一直安慰自己漾唉,他們只是感情好堰塌,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铐懊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壁畸。 梳的紋絲不亂的頭發(fā)上空闲,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天影斑,我揣著相機與錄音,去河邊找鬼残邀。 笑死皆辽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芥挣。 我是一名探鬼主播驱闷,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼空免!你這毒婦竟也來了空另?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蹋砚,失蹤者是張志新(化名)和其女友劉穎扼菠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坝咐,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡循榆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了墨坚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秧饮。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盗尸,到底是詐尸還是另有隱情柑船,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布泼各,位于F島的核電站椎组,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏历恐。R本人自食惡果不足惜寸癌,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弱贼。 院中可真熱鬧蒸苇,春花似錦、人聲如沸吮旅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庇勃。三九已至檬嘀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間责嚷,已是汗流浹背鸳兽。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留罕拂,地道東北人揍异。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像爆班,于是被迫代替她去往敵國和親衷掷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 【Android Service】 Service 簡介(★★★) 很多情況下柿菩,一些與用戶很少需要產(chǎn)生交互的應(yīng)用程...
    Rtia閱讀 3,141評論 1 21
  • 前言:本文所寫的是博主的個人見解戚嗅,如有錯誤或者不恰當(dāng)之處,歡迎私信博主枢舶,加以改正懦胞!原文鏈接,demo鏈接 Serv...
    PassersHowe閱讀 1,405評論 0 5
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情況下的生命周期:在用戶參與的情況下...
    AndroidMaster閱讀 3,023評論 0 8
  • 我們都知道祟辟,在Android中医瘫,Service有兩種啟動方式: startService 以startServic...
    cooperise閱讀 3,777評論 0 7
  • 你用紙把耳朵包好 送給了不屬于你的女人 女人不要 高更不再笑 圣保羅啊 把門都打開吧 不然誰都出去不了 窗外絲柏依...
    饒晗閱讀 218評論 0 5