在JobIntentService中未调用onHandleWork()

时间:2018-12-20 16:53:20

标签: android jobintentservice

在我的应用程序运行期间和启动时,我都需要处理通过AlarmManager发布的意图。我已经编写了JobIntentService的子类来处理意图,但是它没有按预期方式工作:未调用onHandleWork。

我的实现在处理程序是IntentService时有效,但由于后台服务的限制,在启动时除外。因此,我正尝试使用JobIntentService。

Scenario: 1 Login positive
Scenario: 2 Login negative
Scenario: 3 Registration positive

onStartCommand被调用。文档说这种方法:

  

在作为pre-O服务运行时处理启动命令,使它们排队等待稍后在onHandleWork(Intent)中分派。

我不知道“稍后”在这里是什么意思,但实际上并未调用onHandleWork,即使已经按预期的意图调用了onStartCommand。

我已经阅读了类似问题的答案,并确保不覆盖其他方法。我还为我认为正确的服务创建了清单条目-否则不会调用onStartCommand。

这是我创建与AlarmManager一起使用的PendingIntent的方法:

public class MyJobIntentService extends JobIntentService
{
    public int onStartCommand(@Nullable Intent intent, int flags, int startId)
    {
        // This gets called with the intent given to AlarmManager
        return super.onStartCommand(intent, flags, startId);
    }

    public static void enqueueWork(Context context, Intent work)
    {
        // Not called
        enqueueWork(context, NotificationService.class, JOB_ID, work);
    }

    public void onHandleWork(@NonNull Intent intent)
    {
        // Not called
        ...
    }

    // No other methods overridden
}

对我所缺少的东西有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试this推荐。另外,您可能需要检查您的AndroidManifest.xml是否具有renderPagination权限。