我想每天调用一个方法来在我的应用程序中生成僵尸。
以下方法应创建执行此操作的 JobScheduler。
我的问题是:我是只调用一次这个方法,还是可以在应用程序启动时每次都调用它?
public static void startZombieSpawnService(Context context) {
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(context.JOB_SCHEDULER_SERVICE);
long intervaloDeRepeticao = TimeUnit.DAYS.toMillis(1);
jobScheduler.schedule(new JobInfo.Builder(1, new ComponentName(context, ZombieSpawnService.class)).setPeriodic(intervaloDeRepeticao).setp.build());
}
最佳答案
如果您拥有 RECEIVE_BOOT_COMPLETED 权限,那么您还可以使用 JobInfo.Builder() 中的 setPersisted(true)。然后你只需要调用它一次,它也会在重启后持续存在。
否则,当您的应用启动时,您可以使用此函数检查您的作业是否已安排:
public static boolean isJobScheduled(Context mContext, int jobID) {
JobScheduler mScheduler = (JobScheduler)
mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE);
for (JobInfo jobInfo : mScheduler.getAllPendingJobs()) {
if (jobID == jobInfo.getId()) {
return true;
}
}
return false;
}
如果没有安排,则安排。
关于android - 什么时候调用 JobScheduler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969293/