国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

android六種方法保證service不被殺死

vibiu / 2991人閱讀

摘要:一方法,返回在運(yùn)行后進(jìn)程被后,那將保留在開(kāi)始狀態(tài),但是不保留那些傳入的。不久后就會(huì)再次嘗試重新創(chuàng)建,因?yàn)楸A粼陂_(kāi)始狀態(tài),在創(chuàng)建后將保證調(diào)用。因此進(jìn)程的優(yōu)先級(jí)將會(huì)很重要,可以使用將放到前臺(tái)狀態(tài)。六將安裝到,變身系統(tǒng)級(jí)應(yīng)用更多加速啟動(dòng)切換動(dòng)畫(huà)

一、onStartCommand方法,返回START_STICKY

  在運(yùn)行onStartCommand后service進(jìn)程被kill后,那將保留在開(kāi)始狀態(tài),但是不保留那些傳入的intent。不久后service就會(huì)再次嘗試重新創(chuàng)建,因?yàn)楸A粼陂_(kāi)始狀態(tài),在創(chuàng)建 service后將保證調(diào)用onstartCommand。如果沒(méi)有傳遞任何開(kāi)始命令給service,那將獲取到null的intent。

   【結(jié)論】 手動(dòng)返回START_STICKY,親測(cè)當(dāng)service因內(nèi)存不足被kill,當(dāng)內(nèi)存又有的時(shí)候,service又被重新創(chuàng)建,比較不錯(cuò),但是不能保證任何情況下都被重建,比如進(jìn)程被干掉了…. 

二、提升service優(yōu)先級(jí)

  在AndroidManifest.xml文件中對(duì)于intent-filter可以通過(guò)android:priority = “1000”這個(gè)屬性設(shè)置最高優(yōu)先級(jí),1000是最高值,如果數(shù)字越小則優(yōu)先級(jí)越低,同時(shí)適用于廣播。

三、提升service進(jìn)程優(yōu)先級(jí)

  Android中的進(jìn)程是托管的,當(dāng)系統(tǒng)進(jìn)程空間緊張的時(shí)候,會(huì)依照優(yōu)先級(jí)自動(dòng)進(jìn)行進(jìn)程的回收。Android將進(jìn)程分為6個(gè)等級(jí),它們按優(yōu)先級(jí)順序由高到低依次是:
1.前臺(tái)進(jìn)程( FOREGROUND_APP)
2.可視進(jìn)程(VISIBLE_APP )

次要服務(wù)進(jìn)程(SECONDARY_SERVER )
4.后臺(tái)進(jìn)程 (HIDDEN_APP)
5.內(nèi)容供應(yīng)節(jié)點(diǎn)(CONTENT_PROVIDER)
6.空進(jìn)程(EMPTY_APP)
當(dāng)service運(yùn)行在低內(nèi)存的環(huán)境時(shí),將會(huì)kill掉一些存在的進(jìn)程。因此進(jìn)程的優(yōu)先級(jí)將會(huì)很重要,可以使用startForeground 將service放到前臺(tái)狀態(tài)。這樣在低內(nèi)存時(shí)被kill的幾率會(huì)低一些。
在onStartCommand方法內(nèi)添加如下代碼:

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", "請(qǐng)保持程序在后臺(tái)運(yùn)行",
     pendingintent);
     startForeground(0x111, notification);

注意在onDestroy里還需要stopForeground(true),運(yùn)行時(shí)在下拉列表會(huì)看到自己的APP在:
【結(jié)論】如果在極度極度低內(nèi)存的壓力下,該service還是會(huì)被kill掉,并且不一定會(huì)restart

四、onDestroy方法里重啟service

  直接在onDestroy()里startService 
  或
  service +broadcast 方式,就是當(dāng)service走ondestory的時(shí)候,發(fā)送一個(gè)自定義的廣播,當(dāng)收到廣播的時(shí)候,重新啟動(dòng)service;

【結(jié)論】當(dāng)使用類(lèi)似口口管家等第三方應(yīng)用或是在setting里-應(yīng)用-強(qiáng)制停止時(shí),APP進(jìn)程可能就直接被干掉了,onDestroy方法都進(jìn)不來(lái),所以還是無(wú)法保證~.~

五、監(jiān)聽(tīng)系統(tǒng)廣播判斷Service狀態(tài)

  通過(guò)系統(tǒng)的一些廣播,比如:手機(jī)重啟、界面喚醒、應(yīng)用狀態(tài)改變等等監(jiān)聽(tīng)并捕獲到,然后判斷我們的Service是否還存活,別忘記加權(quán)限啊。

六、將APK安裝到/system/app,變身系統(tǒng)級(jí)應(yīng)用

更多:

android加速啟動(dòng)activity

activity切換動(dòng)畫(huà)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67987.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<