JobIntentService不调用onHandleWork

时间:2019-11-29 14:34:56

标签: android intentservice android-jobscheduler

我是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());
    }

1 个答案:

答案 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());
    }
}