gpt4 book ai didi

android-workmanager - Android Workmanager PeriodicWorkRequest 不是唯一的

转载 作者:行者123 更新时间:2023-12-04 20:51:30 33 4
gpt4 key购买 nike

对于 OneTimeWorkRequest,我们可以使用 WorkContinuation 来确保如果作业已经安排好了,我们可以保留或替换它。PeriodicWorkRequest 没有这样的选项,因此每次创建我的主要事件时都会创建一个新作业,一段时间后我会收到此异常。

java.lang.IllegalStateException: Apps may not schedule more than 100 distinct jobs

所以我正在尝试以下方法来创建“独特的周期性作品”

public void schedule(){
Constraints constraints = new Constraints.Builder().setRequiresBatteryNotLow(true).build();
OneTimeWorkRequest zombieSpawnWorker = new OneTimeWorkRequest.Builder(ZombieSpawnWorker
.class).setInitialDelay(15, TimeUnit.MINUTES).setConstraints(constraints).addTag(ZombieSpawnWorker.TAG).build();
this.setUuid(zombieSpawnWorker.getId());
WorkManager.getInstance().beginUniqueWork(TAG,
ExistingWorkPolicy.KEEP,
OneTimeWorkRequest.from(ZombieSpawnWorker.class));
}

然后在工作结束时再次调用这个方法

public WorkerResult doWork() {
try {
//work to be done
} catch (Exception e) {
Log.e(TAG,e.getLocalizedMessage());
return WorkerResult.FAILURE;
}
schedule();
return WorkerResult.SUCCESS;
}

最佳答案

另一种解决方法是向 PeriodicWorkRequestBuilder 添加标记 REQUEST_TAG,然后在调用之前调用 WorkManager.getInstance().cancelAllWorkByTag(REQUEST_TAG)您将定期请求排入队列。

关于android-workmanager - Android Workmanager PeriodicWorkRequest 不是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50435131/

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