android服务自动重启,安卓service关闭后怎么自动重启
滿(mǎn)意答案
首先申明service關(guān)閉有兩種情況:
1、程序進(jìn)入后臺(tái),系統(tǒng)可能會(huì)銷(xiāo)毀應(yīng)用,可以理解為android端監(jiān)聽(tīng)推送消息的服務(wù)在啟動(dòng)后是一直在后臺(tái)運(yùn)行的,但是當(dāng)內(nèi)存不足時(shí),或者第三方應(yīng)用清理內(nèi)存時(shí)會(huì)殺死后臺(tái)服務(wù),此時(shí)該服務(wù)需要自動(dòng)重啟。
該問(wèn)題只需要在推送服務(wù)的onStartCommand方法返回類(lèi)型設(shè)置成START_STICKY,官方文檔對(duì)此的解釋是:public static final int START_STICKY = 1;
大致意思是,在服務(wù)被系統(tǒng)殺死時(shí)會(huì)重新被創(chuàng)建,onStartCommand方法會(huì)被調(diào)用,但是需要注意的是,在調(diào)用onStartCommand時(shí)傳入的intent值可能為空,如果該方法中會(huì)用到該參數(shù)需要特別注意。
設(shè)置該參數(shù)可以解決第三方應(yīng)用在清理內(nèi)存時(shí)或者內(nèi)存不足時(shí)殺掉推送服務(wù)之后重啟推送服務(wù)。
2、服務(wù)被用戶(hù)在應(yīng)用管理-》正在運(yùn)行中點(diǎn)擊“停止”銷(xiāo)毀該服務(wù),服務(wù)不能重啟。
當(dāng)用戶(hù)執(zhí)行該操作時(shí),服務(wù)中的onDestory方法被調(diào)用。所以我們可以在onDestory方法中再次啟動(dòng)服務(wù)。但是此方案不能解決用戶(hù)在應(yīng)用管理-》已下載中,強(qiáng)行停止該應(yīng)用程序時(shí)服務(wù)被關(guān)閉后重啟,對(duì)比騰訊新聞,同等條件下,該問(wèn)題也存在,即不能重啟服務(wù)。
00分享舉報(bào)
總結(jié)
以上是生活随笔為你收集整理的android服务自动重启,安卓service关闭后怎么自动重启的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 科普:google的数字图书馆
- 下一篇: 正则表达式给html添加属性,正则表达式