成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android基礎(chǔ)(七)–Service?;?創(chuàng)新互聯(lián)

總結(jié):大部分應(yīng)用只需做1-2-3 步即,如業(yè)務(wù)要求比較高 可適當(dāng)采用4.

創(chuàng)新互聯(lián)是一家專業(yè)提供比如企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、html5、小程序制作等業(yè)務(wù)。10年已為比如眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
1.修改onStartCommand函數(shù)返回值為START_STICKY。(資源緊張情況下 系統(tǒng)殺掉Service后會(huì)恢復(fù),進(jìn)入恢復(fù)隊(duì)列)(建議采用)

@Override

publicintonStartCommand(Intent intent,intflags,intstartId) {

return  START_STICKY;

   //return super.onStartCommand(intent, flags, startId);

}

 2.提升service的優(yōu)先級,設(shè)置android:priority=”1000″(建議采用)

<service

android:name=”…”

android:exported =”false”>

<!– 1000是最高優(yōu)先級,數(shù)字越小,優(yōu)先級越低 –>

<intent-filter android:priority=”1000″/>

</service>

 3.提升service進(jìn)程優(yōu)先級,為前臺(tái)進(jìn)程  (建議采用)
          步驟一:新建前臺(tái)Service (復(fù)制可用)

public class BootstrapService extends Service {
@Override public void onCreate() { super.onCreate(); startForeground(this); // 自己關(guān)閉自己 清除notification stopSelf(); }
@Override public void onDestroy() { super.onDestroy(); stopForeground(true); }
public static void startForeground(Service context) { NotificationManager nm = (NotificationManager)context. getSystemService(NOTIFICATION_SERVICE); NotificationCompat.Builder builder = new NotificationCompat.Builder(context); builder.setContentTitle(“I’m running”) .setContentText(“”) .setWhen(System.currentTimeMillis()) .setPriority(Notification.PRIORITY_MIN) .setSmallIcon(R.drawable.notification_icon) .setAutoCancel(true); Notification notification = builder.build(); context.startForeground(8888, notification); } }
步驟二:在主Service 2次調(diào)用
public class MainService extends Service {
@Override public void onCreate() { super.onCreate();
//第一次設(shè)置前臺(tái)進(jìn)程 BootstrapService.startForeground(this); //第二次設(shè)置前臺(tái)進(jìn)程 為了清除notification Intent intent = new Intent(this, BootstrapService.class); startService(intent); }
@Override public void onDestroy() { super.onDestroy(); stopForeground(true); } }
4.守護(hù)進(jìn)程(以下轉(zhuǎn),部分room 有后臺(tái)保護(hù)進(jìn)程功能)
使用Jni,在 c端 fork進(jìn)程,檢測Service是否存活,若Service已被殺死,則進(jìn)行重啟Service. 至于檢測方式,可以輪詢獲取子進(jìn)程Pid,若為1, 則說明子進(jìn)程被Init進(jìn)程所領(lǐng)養(yǎng),已經(jīng)成為了孤兒進(jìn)程. 但是這種方式比較消耗電量,并且由于不同手機(jī)系統(tǒng)定制的改變,當(dāng)應(yīng)用被強(qiáng)制停止時(shí),父進(jìn)程并不一定被真正殺死,因此在一些特定機(jī)型上是無法通過此方式進(jìn)行判斷. 這里推薦使用liunx socket的方式進(jìn)行類似心跳包的檢測,并且當(dāng)觸發(fā)檢測Service是否被殺死之前,需要判斷應(yīng)用是否已經(jīng)被卸載,如果應(yīng)用已經(jīng)被卸載,則不再進(jìn)行檢測Service行為,直接調(diào)用exit(0)退出子進(jìn)程,避免浪費(fèi)系統(tǒng)資源和消耗電量.

可參照:https://github.com/CharonChui/DaemonService

注意: 目前在Android 5.0系統(tǒng)上會(huì)把fork出來的進(jìn)程放到一個(gè)進(jìn)程組里, 當(dāng)程序主進(jìn)程掛掉后,也會(huì)把整個(gè)進(jìn)程組殺掉,因此用fork的方式也無法在Android5.0及以上系統(tǒng)實(shí)現(xiàn)守護(hù)進(jìn)程. 這個(gè)是系統(tǒng)層面的限制,當(dāng)然也是為了優(yōu)化整個(gè)的系統(tǒng)環(huán)境,守護(hù)進(jìn)程給手機(jī)帶來的體驗(yàn)并不好

具體見源碼:

http://androidxref.com/5.0.0_r2/xref/frameworks/base/services/core/java/com/android/server/am/Proce***ecord.java

補(bǔ):

Android5.0 以上目前已有人使用黑科技攻克,部分機(jī)型可能無法起到作用,但思路很值得借鑒,代碼結(jié)構(gòu)也不錯(cuò), 具體方案見:

https://github.com/Marswin/MarsDaemon

5.復(fù)寫Service onDestory()方法,重啟服務(wù)。(如進(jìn)程殺死無效)
6.android:persistent=“true” (需root權(quán)限才有效 ,基本無實(shí)際應(yīng)用價(jià)值)
7.通過監(jiān)聽系統(tǒng)廣播來把自己拉起來 (4.4系統(tǒng)以上 應(yīng)用退出后 將不再接受系統(tǒng)廣播 ,實(shí)際效果不明顯)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文名稱:Android基礎(chǔ)(七)–Service?;?創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article38/ccecsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站收錄、App設(shè)計(jì)、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
天镇县| 商都县| 平江县| 昌吉市| 平谷区| 鄂伦春自治旗| 太谷县| 呼伦贝尔市| 修水县| 高安市| 塔河县| 乌恰县| 襄樊市| 左云县| 楚雄市| 博爱县| 阿勒泰市| 宁乡县| 南木林县| 舞钢市| 那坡县| 盐池县| 尼勒克县| 普定县| 嘉善县| 冷水江市| 广灵县| 太原市| 威海市| 福清市| 石台县| 金华市| 镇沅| 子洲县| 天柱县| 咸宁市| 新丰县| 临沂市| 龙游县| 宁化县| 黄平县|