我是Services的新手,因此决定使用JobIntentService,因为我的应用程序必须支持API 21+,但是当我在API 28+上启动服务时,它无法正常工作。
我发现以onHandleWork
启动服务时未调用Contextcompat.startForegroundService()
我的代码:
我的活动
Intent intent = new Intent(this, MyService.class);
intent.putExtra("fileTitle", popup.name);
ContextCompat.startForegroundService(this,intent);
我的服务
@Override
public void onCreate() {
super.onCreate();
MyLog(this, "SERVICE ONCREATE", "SERVICE");
createNotificationChannel();
initNotification();
startForeground(NOTIFICATION_ID, nBuilder.build());
}
答案 0 :(得分:0)
要结束本主题,这是我设法使其起作用的方式:
我的活动
Intent intent = new Intent(this, MyService.class);
intent.putExtra("fileTitle", popup.name);
ContextCompat.startForegroundService(this,intent);
我的服务
@Override
public void onCreate() {
super.onCreate();
// Init for Notification Channel in API 26+ && init notification to display
createNotificationChannel();
initNotification();
}
@Override
protected void onHandleIntent(@Nullable Intent intent) {
if(intent!= null && isPostorEqualOS(Build.VERSION_CODES.O)){
startForeground(NOTIFICATION_ID, nBuilder.build());
}
}