Android8 0 啟動Service遇到的問題

2021-09-26 05:18:33 字數 535 閱讀 6489

1、在android8.0之後呼叫startservice(service);

原因:android 8.0 不再允許後台service直接通過startservice方式去啟動。

解決方案:改用startforegroundservice(service);

2、在使用了context.startforegroundservice()後報錯。

異常資訊:context.startforegroundservice() did not then call service.startforeground()

原因:在系統建立服務後,應用有五秒的時間來呼叫該服務的 startforeground() 方法以顯示新服務的使用者可見通知。如果應用在此時間限制內未呼叫 startforeground(),則系統將停止服務並宣告此應用為 anr。

解決方案:在service.oncreate的時候新增通知

if (build.version.sdk_int >= build.version_codes.o)

Android 8 0啟動Service問題

由於我們是定製化系統,是可以收到開機廣播的,所以不要糾結開機廣播的問題。android原生os在已經禁用了開機廣播,第三方應用是無法收到開機廣播的。根據同事定位我們的應用在開機的時候出現crash,如果開機後從應用入口進入可正常執行,並且在android8.0上是必現的。檢視我們應用的原始碼找到兩處...

Android8 0 啟動前台Service

1.啟動service if build.version.sdk int build.version codes.o else2.在被啟動service中的oncreate方法呼叫 private void startnotificationforeground notification notif...

android8 0適配工作

整個8.0適配,設計的部分包括6部分 我專案中的,其他的適配感覺並不會影響專案的執行 1 執行時許可權 2 通知notifaction適配 3 未知 apk安裝適配 4 後台執行限制 後台服務 5 懸浮框適配 6 集合的處理 abstractcollection使用限制 android6.0的執行時...