用于通知的Android java计时器
我正在用java为android构建一个应用程序。为此我有一个日历。它想这样做:每次8点,计时器都应该检查第二天是否有活动。如果有,它应该通知用户 通知不是问题,但我如何确定“触发点”8点钟的时间 在youtube上的教程中,它们总是有一个按钮作为触发器,但在我的例子中,我无法决定计时器何时像那样启动:( 这是我的尝试:(我想得到最后的历元数,并将其与实际时间进行比较)用于通知的Android java计时器,java,android,timer,notifications,Java,Android,Timer,Notifications,我正在用java为android构建一个应用程序。为此我有一个日历。它想这样做:每次8点,计时器都应该检查第二天是否有活动。如果有,它应该通知用户 通知不是问题,但我如何确定“触发点”8点钟的时间 在youtube上的教程中,它们总是有一个按钮作为触发器,但在我的例子中,我无法决定计时器何时像那样启动:( 这是我的尝试:(我想得到最后的历元数,并将其与实际时间进行比较) 希望你们能帮我…;)。而不是使用计时器。scheduleAtFixedRate使用以下方法: 计划在指定时间执行指定任务。如果
希望你们能帮我…;)。而不是使用计时器。scheduleAtFixedRate使用以下方法: 计划在指定时间执行指定任务。如果时间已过,则计划立即执行任务
因此,您可以将它精确地安排在8点钟,而无需每秒检查一次。在android中使用计时器不是一个好主意,因为它可能会被操作系统杀死 更好的做法是使用android中可用的alarmManager类 以下是android教程,介绍如何使用alarm manager安排任务:
看在地球的份上,请不要用
endsWith
来比较时间。使用=
。您可以使用AlarmManager
来安排作业在指定时间运行。我不能这样做,因为我会比较日期和年份等,但这对我来说没有什么有趣的!(我指的是你的>=)
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);