gpt4 book ai didi

android - WorkManager 不重复周期性工作请求

转载 作者:行者123 更新时间:2023-12-02 16:46:17 37 4
gpt4 key购买 nike

我正在创建一个 Android 应用程序来在后台运行我的代码。我很清楚 Android Oreo 对后台服务引入的限制,这就是我使用 WorkManager API 来安排任务执行的原因。我正在使用 Android API 24 (Nougat) 在 Mi Max 设备上测试我的代码,并手动启用自动启动,以便 MIUI 允许应用程序在后台运行,但问题是,WorkManager 在应用程序第一次启动时触发,但是之后,它就不起作用了。下面是我用于定期工作请求和工作本身的代码。

定期工作请求调用:

PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(ClassExtendingWorker.class, 15, TimeUnit.MINUTES)
.setConstraints(Constraints.NONE)
.build();
WorkManager.getInstance().enqueue(work);

类扩展工作人员:

public Result doWork() {
/*--- SHOWING NOTIFICATION AS AN EXAMPLE TASK TO BE EXECUTED ---*/
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(), "")
.setSmallIcon(R.drawable.common_google_signin_btn_icon_light)
.setContentTitle("TestApp")
.setContentText("Code executed")
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
notificationManager.notify(1234, mBuilder.build());

return Result.SUCCESS;
}

最佳答案

根据文档:

 /**
* The minimum interval duration for {@link PeriodicWorkRequest} (in milliseconds).
*/
public static final long MIN_PERIODIC_INTERVAL_MILLIS = 15 * 60 * 1000L; // 15 minutes.
/**
* The minimum flex duration for {@link PeriodicWorkRequest} (in milliseconds).
*/
public static final long MIN_PERIODIC_FLEX_MILLIS = 5 * 60 * 1000L; // 5 minutes.

如果您将这两个值设置为小于指定的最小值,那么您必须等待大约 20 分钟才能看到日志/输出

关于android - WorkManager 不重复周期性工作请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50999673/

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