Android8.0:java.lang.IllegalStateException:在应用程序启动时,应用程序启动应该执行某些网络任务的服务。在针对API级别26之后,我的应用程序无法在后台的Android8.0上启动服务。由以下原因引起:java.lang.IllegalStateException:不允许启动服务意图{CMP=my.app.tt/com.my.service}:APP处于后台uid UidRecord{90372b1 u0a136 CEM空闲进程:1 seq(0,0,0)}据我所知,它涉及:背景执行限制如果针对Android8.0的应用程序试图在不允许创建后台服务的情况下使用该方法,startService()方法将引发IllegalStateException。"在不允许的情况下-这到底是什么意思?以及如何解决它。我不想把我的服务设置为“前景”
3 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
startService()
startForgroundService()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(new Intent(context, ServedService.class)); } else { context.startService(new Intent(context, ServedService.class)); }
@Overridepublic void onCreate() { super.onCreate(); startForeground(1,new Notification());}
慕的地8271018
TA贡献1796条经验 获得超4个赞
<service android:name=".YourService" android:permission="android.permission.BIND_JOB_SERVICE"/>
public class YourService extends JobIntentService { public static final int JOB_ID = 1; public static void enqueueWork(Context context, Intent work) { enqueueWork(context, YourService.class, JOB_ID, work); } @Override protected void onHandleWork(@NonNull Intent intent) { // your code }}
YourService.enqueueWork(context, new Intent());
- 3 回答
- 0 关注
- 288 浏览
添加回答
举报
0/150
提交
取消