我在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);
希望你们能帮助我......;)。
答案 0 :(得分:1)
而不是使用timer.scheduleAtFixedRate
使用方法timer.schedule
:
计划指定任务在指定时间执行。如果时间是过去的,则任务计划立即执行。
因此,您可以在8点准确安排,而无需每秒检查一次。
答案 1 :(得分:0)
在android中使用计时器不是一个好主意,因为它可能会被操作系统杀死 更好的办法是使用android中可用的alarmManager类
这里是android教程,它描述了如何使用警报管理器安排任务:
https://en.proft.me/2017/05/7/scheduling-operations-alarmmanager-android/