Shu*_*ngh 8 android android-jetpack android-workmanager
在PeriodicTimeRequest最小周期时间为15分。我想将它从 15 分钟减少到不到 15 分钟。我该怎么做?
小智 8
我们有一个技巧可以减少 15 分钟的定期运行时间。但您不能使用PeriodicWorkRequest。创建具有初始延迟的 OneTimeWorkRequest 并在工作人员内部工作结束时调用 self 。如果需要,创建backgroundExecutor.execute {}并从内部调用以进行异步调用。意味着调用 self 的工作线程不会被终止或者 onStopped() 不会被调用。
现有工作策略。替换 | 根据您的需要,可能需要保留。
一个简单的答案是“否”,您不能将时间减少到少于 MIN_PERIODIC_INTERVAL_MILLIS,它被硬编码为 15 分钟。
但是,您可以比 MIN_PERIODIC_INTERVAL_MILLIS(15 分钟)更早地测试PeriodicWorkRequest。
为此,您需要WorkManagerTestInitHelper在androidx.work.testing.
首先,在您的应用程序或模块的 build.gradle 文件中添加以下依赖项:
//Current stable release is 2.3.4
androidTestImplementation "androidx.work:work-testing:2.3.4
Run Code Online (Sandbox Code Playgroud)
接下来,您需要使用setPeriodDelayMet可用的方法TestDriver,该方法可用于指示间隔已完成并早于 MIN_PERIODIC_INTERVAL_MILLIS(15 分钟)执行PeriodicWorkRequest。示例代码:
@Test
public void testPeriodicWork(Context context) throws Exception {
// Setup input data
Data input = new Data.Builder().put(KEY_1, 1).put(KEY_2, 2).build();
// Create periodic work request
PeriodicWorkRequest request = new PeriodicWorkRequest.Builder(MyWorker.class, 15, TimeUnit.MINUTES)
.setInputData(input)
.build();
// Enqueue periodic request
WorkManager.getInstance(context).enqueueUniquePeriodicWork(WORKER_TAG, ExistingPeriodicWorkPolicy.REPLACE, request);
// Initialize testDriver
TestDriver testDriver = WorkManagerTestInitHelper.getTestDriver();
// Tells the testing framework the period delay is met, this will execute your code in doWork() in MyWorker class
testDriver.setPeriodDelayMet(request.getId());
}
Run Code Online (Sandbox Code Playgroud)
您可以在https://developer.android.com/topic/libraries/architecture/workmanager/how-to/integration-testing#periodic-work找到有关测试 periodicworkrequest 的更多信息
了解有关测试 WorkManager 的更多信息,请访问https://developer.android.com/reference/androidx/work/testing/WorkManagerTestInitHelper和https://developer.android.com/reference/androidx/work/testing/TestDriver
您无法更改 15 分钟的最短时间。如果可以改成小于这个值,那就不叫最小值了。根据您的需要尝试使用警报管理器或 FCM。请参阅以下链接了解更多详细信息:https ://developer.android.com/training/efficient-downloads/regular_updates
| 归档时间: |
|
| 查看次数: |
4274 次 |
| 最近记录: |