android - 什么时候调用 JobScheduler?

标签 android android-jobscheduler

我想每天调用一个方法来在我的应用程序中生成僵尸。

以下方法应创建执行此操作的 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/

相关文章:

java - 如何从字符串日期获取日、月、年?

android - 通过 PendingIntent 添加新任务到 JobScheduler

java - 是否可以在不打开应用程序的情况下在 android 上运行日常任务?

java - 当 Wifi 状态发生变化(连接或断开网络)时如何触发 JobScheduler?

Android Job Scheduler - 安排作业立即且恰好执行一次

android - 让作业运行并每 2 分钟进行一次池化,无论应用程序是关闭还是从内存中删除

android - 集成 AdMob 时出现资源未找到异常

java - 在Android自定义组件上添加setOnClickListener

android - 展开折叠工具栏的透明工具栏

android - 如何检查android设备是否配备了wifi适配器?