用于通知的Android java Timer

时间:2018-06-12 08:45:21

标签: java android timer notifications

我在java中为android构建应用程序。为此,我有一个日历。它想要这样做:每次8点钟,计时器应检查第二天是否有事件。如果有,它应该通知用户。

通知不是问题,但如何计算8点的“触发点”?

在youtube上的教程中,他们总是有一个按钮作为触发器,但在我的情况下,我无法决定Timer何时启动:(。

以下是我的尝试:(我想获取最后一个纪元数字并将其与实际时间进行比较)

timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {

                int time = (int) System.currentTimeMillis();
                Log.e("Timer:", "Tick");

                if(new String("" + time).endsWith("" + 18980000)){
                    createAndDisplayNotification("Hello there!");
                }
            }
        }, 0, 1000);

希望你们能帮助我......;)。

2 个答案:

答案 0 :(得分:1)

而不是使用timer.scheduleAtFixedRate使用方法timer.schedule

  

计划指定任务在指定时间执行。如果时间是过去的,则任务计划立即执行。

因此,您可以在8点准确安排,而无需每秒检查一次。

答案 1 :(得分:0)

在android中使用计时器不是一个好主意,因为它可能会被操作系统杀死 更好的办法是使用android中可用的alarmManager类

这里是android教程,它描述了如何使用警报管理器安排任务:

https://en.proft.me/2017/05/7/scheduling-operations-alarmmanager-android/