Я пытался запланировать уведомление через 3 дня через WorkManager
, но оно не сработало. Я пробовал следующее.
ArticleNotificationWorker
public class ArticleNotificationWorker extends Worker {
private static final String WORK_RESULT = "work_result";
Context mContext;
public static final String FROM_ARTICLE_NOTIFICATIONS = "ArticleNotifications";
public ArticleNotificationWorker(
@NonNull Context context,
@NonNull WorkerParameters params) {
super(context, params);
mContext = context;
}
@NonNull
@Override
public Result doWork() {
//create notifications only after three days of unlocking the article
buildAndSendNotification();
Data outputData = new Data.Builder().putString(WORK_RESULT, "Jobs Finished").build();
return Result.success(outputData);
}
private void buildAndSendNotification(){
//send notification
}
}
Запрос WorkManager выглядит следующим образом
OneTimeWorkRequest request = new OneTimeWorkRequest.Builder(ArticleNotificationWorker.class)
.setInitialDelay(3, TimeUnit.DAYS)
.addTag(IAppConstants.ARTICLE_NOTIFICATION)
.build();
workManager.beginUniqueWork(IAppConstants.ARTICLE_NOTIFICATION_WORK, ExistingWorkPolicy.REPLACE,
request)
.enqueue();
Я был бы очень признателен, если бы вы могли помочь меня с вопросом.