我已经在Android中实现了一个使用JobService来检查更新的应用程序。我已经在一些设备上进行了测试:Samsung J3,RedMi 5 +,RedMi note pro,MI A2 lite。它在J3中正常工作,但是在我测试过的其他电话中,如果某个应用程序处于非活动状态或该应用程序不在最近的应用程序列表中,则不会计划JobService。
这是我的实现方式。
MainActivity.java
public static void scheduleJob(Context context) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
JobScheduler js =
(JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo job = new JobInfo.Builder(
MY_BACKGROUND_JOB,
new ComponentName(context, CheckAdService.class))
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPersisted(true)
.setPeriodic(15 * 60 * 1000)
.build();
int resultCode = js.schedule(job);
if (resultCode == JobScheduler.RESULT_SUCCESS) {
Log.d("JOB", "Scheduled");
} else {
Log.d("JOB", "Not Scheduled");
}
}
}
Run Code Online (Sandbox Code Playgroud)
Service.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class CheckAdService extends JobService {
@Override …
Run Code Online (Sandbox Code Playgroud)