Я создал период c WorkManager для отправки уведомления через 12 часов. Проблема в том, что когда я отправляю вызов для планирования WorkManager, работа выполняется немедленно, а также по расписанию через 12 часов. Я не хочу, чтобы WorkManager запускался немедленно, но в запланированное время через час.
Вызов из MainClass:
Constraints constraints = new Constraints.Builder()
//wifi only
.setRequiredNetworkType(NetworkType.UNMETERED)
.build();
PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(WorkManagerCheckReport.class, 12, TimeUnit.HOURS)
.addTag(TAG)
.setConstraints(constraints)
.build();
WorkManager.getInstance(getApplicationContext()).enqueueUniquePeriodicWork(TAGWORKMANAGER, ExistingPeriodicWorkPolicy.KEEP, periodicWork);
Класс WorkManager:
class WorkManagerCheckReport(context: Context, params: WorkerParameters) : Worker(context, params) {
var id = 0
private val TAG = "WorkManagerCheckReport"
//flag to keep track if document is available to the patient.
private var flagReportNotification = false
private var isReportNOTAvailableToPatient = false
override fun doWork(): Result {
Customer.log(TAG, "Workmanager called.")
id = inputData.getLong(NOTIFICATION_ID, 0).toInt()
sendNotification()
return success()
}