gpt4 book ai didi

android - WorkManager 的 PeriodicWorkRequest 只执行一次,不重复

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:50 33 4
gpt4 key购买 nike

我正在尝试使用 WorkManager,但我似乎遇到了一个问题,即 PeriodicSync 仅在启动时重复一次,仅此而已。

我看过这篇文章 Is WorkManager's PeriodicWorkRequest really repeating for anyone?但那里没有答案。我也在使用最新的 alpha build 10。

如果有人能提供帮助,将不胜感激。我还是 android 的新手,但需要让它为一个项目工作。我什至没有尝试将它与我想要的代码一起使用,只是试图让它正确运行。

我将它设置为每 10 秒运行一次,我也尝试了 10,000 毫秒,但都不起作用,10 秒后什么也没有发生。

日志消息“Sync”仅在创建时出现一次,仅此而已。

我遇到的另一个问题是,每次我启动我的应用程序时,worker 的数量似乎都在增加,就好像他们在彼此叠加,我不知道这是否相关。 找到了我的其他问题的答案 here但我仍然需要帮助解决我的主要问题。

这是我的代码:

worker 类(Class)

public class MyWorker2 extends Worker {

private static final String TAG = "BOOGABOOGA";

public MyWorker2(
@NonNull Context context,
@NonNull WorkerParameters params) {
super(context, params);
}

@Override
public Worker.Result doWork() {

// Do the work here--in this case, compress the stored images.
// In this example no parameters are passed; the task is
// assumed to be "compress the whole library."
Log.i(TAG, "Sync");

// Indicate success or failure with your return value:
return Result.SUCCESS;

}
}

主要 Activity

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

PeriodicWorkRequest syncWork = new PeriodicWorkRequest.Builder(MyWorker2.class, 10, TimeUnit.SECONDS).build();
WorkManager.getInstance().enqueue(syncWork);

}
}

编辑:这不起作用的原因是,根据此处的规范,重复任务的最小间隔设置为 15 分钟:https://developer.android.com/reference/androidx/work/PeriodicWorkRequest

最佳答案

这不起作用的原因是因为任务可以重复的最短时间间隔设置为 15 分钟。归功于exshinigami .可在此处找到相关规范:https://developer.android.com/reference/androidx/work/PeriodicWorkRequest#min_periodic_interval_millis

我刚刚测试并验证它确实在 15 分钟后重复了。

关于android - WorkManager 的 PeriodicWorkRequest 只执行一次,不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52915591/

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