我试图在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();
如果您能帮助我解决这个问题,我将不胜感激。
我记得曾经用WorkManager安排服务,但是当应用关闭时它并没有触发它,原因是我在手机上进行了测试。在您使用的手机上查看您的操作系统允许。