1.啟動service
if(build.version.sdk_int >=build.version_codes.o)else
2.在被啟動service中的oncreate方法呼叫
private void startnotificationforeground()
notification notification = new notification.builder(this)
.setchannelid(channel_id)
.setautocancel(false)
.setcontenttitle("主服務")//標題
.setcontenttext("執行中...")//內容
.setwhen(system.currenttimemillis())
.setsmallicon(r.mipmap.ic_launcher_home)//小圖示一定需要設定,否則會報錯(如果不設定它啟動服務前台化不會報錯,但是你會發現這個通知不會啟動),如果是普通通知,不設定必然報錯
.setlargeicon(bitmapfactory.decoderesource(getresources(), r.mipmap.ic_launcher_home))
.build();
startforeground(1, notification);//服務前台化只能使用startforeground()方法,不能使用 notificationmanager.notify(1,notification); 這個只是啟動通知使用的,使用這個方法你只需要等待幾秒就會發現報錯了
}}
3.這樣應用重新編譯,service即為前台服務,並且通知欄中顯示服務通知! Android8 0 啟動Service遇到的問題
1 在android8.0之後呼叫startservice service 原因 android 8.0 不再允許後台service直接通過startservice方式去啟動。解決方案 改用startforegroundservice service 2 在使用了context.startforeg...
Android 8 0啟動Service問題
由於我們是定製化系統,是可以收到開機廣播的,所以不要糾結開機廣播的問題。android原生os在已經禁用了開機廣播,第三方應用是無法收到開機廣播的。根據同事定位我們的應用在開機的時候出現crash,如果開機後從應用入口進入可正常執行,並且在android8.0上是必現的。檢視我們應用的原始碼找到兩處...
android8 0適配工作
整個8.0適配,設計的部分包括6部分 我專案中的,其他的適配感覺並不會影響專案的執行 1 執行時許可權 2 通知notifaction適配 3 未知 apk安裝適配 4 後台執行限制 後台服務 5 懸浮框適配 6 集合的處理 abstractcollection使用限制 android6.0的執行時...