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的執行時...