Android8.0及以上Service background start error
目录
- 更多分享:www.catbro.cn
Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=xxxxxService }: app is in background uid UidRecord{4b037e1 u0a194 SVC idle change:idle|uncached procs:1 seq(0,0,0)}
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1521)
at android.app.ContextImpl.startService(ContextImpl.java:1477)
at android.content.ContextWrapper.startService(ContextWrapper.java:650)
-
原因:在应用程序启动时,应用程序启动应该执行某些网络任务的服务。在针对API级别26后,我的应用程序无法在后台启动Android 8.0上的服务。
-
解决
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(new Intent(context, ServedService.class)); } else { context.startService(new Intent(context, ServedService.class)); } //根据需要可以添加一个前置广播 @Override public void onCreate() { super.onCreate(); startForeground(1,new Notification()); }