首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Evernote的作业库的日常工作

使用Evernote的作业库的日常工作
EN

Stack Overflow用户
提问于 2018-08-12 08:09:39
回答 1查看 529关注 0票数 0

我只想每天在特定的时间发出当地的推送通知!我在文档中发现我可以做到这一点。以下代码:

代码语言:javascript
复制
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点)实现“接收本地通知”。不是下午)?请帮帮我?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-12 08:55:23

来自文档的注释:

//时间:上午1时至6时

代码语言:javascript
复制
DailyJob.schedule(new JobRequest.Builder(TAG), TimeUnit.HOURS.toMillis(1),TimeUnit.HOURS.toMillis(6));

现在不是下午。如果你试着18:00,现在是下午,它是24小时钟.

这是我的理论思考(测试需要) ,但您可以在下面尝试一下,然后评论一下如果成功的话。

您可以在DailyJob 08:00和08:00:05之间设置。这意味着开始时间和结束时间之间有5秒的差别。

您可以像以前一样使用TimeUnit.Seconds.toMillis(5)

代码语言:javascript
复制
public class Tasker extends DailyJob {
    static final String TAG = "do_update_value_job_tag";

    static void schedulePeriodic(Context context) {
        Long startMs = TimeUnit.HOURS.toMillis(8);
        Long endMs = TimeUnit.HOURS.toMillis(8) + TimeUnit.SECONDS.toMillis(5); //←←←
        JobRequest.Builder requestByTag = new JobRequest.Builder(Tasker.TAG).setUpdateCurrent(true);
        DailyJob.schedule(requestByTag, startMs, endMs);
    }

    @NonNull
    @Override
    protected DailyJobResult onRunDailyJob(@NonNull Params params) {
        //do stuff
        return DailyJobResult.SUCCESS;
    }

    @Override
    protected void onCancel() {
        //do stuff
        super.onCancel();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51806971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档