【问题标题】:Android JobScheduler not starting on emulatorAndroid JobScheduler 未在模拟器上启动
【发布时间】:2016-09-23 01:03:08
【问题描述】:

在 Android 模拟器上运行时,我无法让 JobScheduler 启动计划作业。如果我在运行 Android 6.0.1 的真正 Samsung Galaxy S7 和 Nexus 5X 上进行测试,计划工作立即开始。模拟器配置为启用 100% 电池和充电以及全网速。

我在 OSX El capitan 10.11.4 上运行 Android Studio 2.1.1, jre 1.8.0_92-b14。模拟器版本是 25.1.6,它运行的是 Android 6.0

这是我安排工作的方式:

public static void sendInspectionSessions(Context context) {
    JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    JobInfo job = new JobInfo.Builder(
            INSPECTION_SESSION_JOB_ID,
            new ComponentName(context, InspectionSessionJobService.class))
            .setBackoffCriteria(TimeUnit.SECONDS.toMillis(30), JobInfo.BACKOFF_POLICY_EXPONENTIAL)
            .setPersisted(true)
            .setMinimumLatency(0)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
            .setOverrideDeadline(Config.INSPECTION_SESSION_SEND_DEADLINE)
            .build();
    int id = js.schedule(job);
    if (id > 0) {
        LogUtil.i(TAG, "Scheduled InspectionSession send job with id " + id + ". Supplied id was " + INSPECTION_SESSION_JOB_ID);
    } else {
        LogUtil.e(TAG, "Failed to schedule InspectionSession send job. Return code was " + id);
    }
}

schedule() 在模拟器和设备上都返回 1。模拟器上不显示错误消息。

我在 AndroidManifest 中定义了我的工作服务,方式如下:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<service android:name=".service.InspectionSessionJobService"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:exported="true" />

我是否遗漏了什么或者这是 Android 模拟器的错误?有没有人让 JobScheduler 在模拟器上工作?

【问题讨论】:

  • 我什至会通过亚行开始这个过程。如果您对 5.0 之前的版本不感兴趣,很多示例都引用了 GCMNetworkManager 而不是 JobScheduler
  • 就我而言,起初似乎与服务似乎没有运行相同的问题。但是过了一段时间我发现在调用服务之前有一个延迟。如果我们将最小延迟和覆盖期限设置为 0,则服务将几乎立即执行。

标签: android android-emulator


【解决方案1】:

可能为时已晚,但是您在哪里调用 sendInspectionSessions()?您必须将应用上下文传递给它。

对于其他人:您可以在应用程序的 onCreate() 方法中启动它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    相关资源
    最近更新 更多