使用Evernote工作库的日常工作

时间:2018-08-12 08:09:40

标签: android jobs

我只是想在每天的特定时间触发本地推送通知! 我在文档中发现可以实现此目的。下面的代码:

public class MyDailyNotMorning extends DailyJob {

public static final String TAG = "MyDailyJob";

public static void schedule() {
    // schedule between 1 and 6 *PM*
    DailyJob.schedule(builder, TimeUnit.HOURS.toMillis(1), TimeUnit.HOURS.toMillis(6));
}

@NonNull
@Override
protected DailyJobResult onRunDailyJob(Params params) {
    PendingIntent pi = PendingIntent.getActivity(getContext(), 0,
            new Intent(getContext(), MainActivity.class), 0);

    Notification notification = new NotificationCompat.Builder(getContext())
            .setContentTitle("Morning")
            .setContentText("It's time to send a photo!")
            .setAutoCancel(true)
            .setContentIntent(pi)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setShowWhen(true)
            //   .setColor(Color.RED)
                .setLocalOnly(true)
            .build();


    NotificationManagerCompat.from(getContext())
            .notify(new Random().nextInt(), notification);
    Log.d("myTag", "onRunJob: notification setted daily success:morning");

    return DailyJobResult.SUCCESS;
}
}

在这种情况下,通知在上午1点(或下午1点)接收,因此问题出在此方法的第二个参数是什么。或者如何在上午8点(仅上午8点而非下午8点)实现“接收本地通知”?请帮我吗?!

1 个答案:

答案 0 :(得分:0)

文档注释:

  

//安排在凌晨1-6点之间

  // Example from the docs
        var myLineChart = new Chart(ctx, config);
   // Destroys a specific chart instance
        myLineChart.destroy();

不是下午。如果您尝试 18:00:00 ,那就是下午它遵循24小时制。


代码

这是我的理论思想(需要测试),,但是您可以在下面尝试此方法,然后进行评论。

您在{strong> 08:00:00 和 08:00:05 之间设置DailyJob.schedule(new JobRequest.Builder(TAG), TimeUnit.HOURS.toMillis(1),TimeUnit.HOURS.toMillis(6)); 。这意味着开始时间和结束时间相差五秒。

您可以像以前一样使用DailyJob

TimeUnit.Seconds.toMillis(5)