Вы не можете .
Периодическая работа имеет минимальный интервал 15 минут и не может иметь начальной задержки. Вы можете найти доказательства в классе WorkSpec.java
.
/**
* Sets the periodic interval for this unit of work.
*
* @param intervalDuration The interval in milliseconds
*/
public void setPeriodic(long intervalDuration) {
if (intervalDuration < MIN_PERIODIC_INTERVAL_MILLIS) {
Logger.get().warning(TAG, String.format(
"Interval duration lesser than minimum allowed value; Changed to %s",
MIN_PERIODIC_INTERVAL_MILLIS));
intervalDuration = MIN_PERIODIC_INTERVAL_MILLIS;
}
setPeriodic(intervalDuration, intervalDuration);
}
Но есть и другие способы справиться с этим.
- Напишите модульные тесты с использованием библиотеки work-testing и убедитесь, что ваша бизнес-логика работает должным образом.
- Используйте подход внедрения зависимостей и укажите
OneTimeWorkRequest
в режиме отладки, например:
interface Scheduler {
fun schedule()
}
class DebugScheduler {
fun schedule() {
WorkManager.getInstance().enqueue(
OneTimeWorkRequest.Builder(MyWorker::class.java)
.build()
)
}
}
class ProductionScheduler {
fun schedule() {
// your actual scheduling logic
}
}