gpt4 book ai didi

Android JobScheduler 无法在模拟器上启动

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:40 38 4
gpt4 key购买 nike

在 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 在模拟器上工作?

最佳答案

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

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

关于Android JobScheduler 无法在模拟器上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436898/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com