Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于通知的Android java计时器_Java_Android_Timer_Notifications - Fatal编程技术网

用于通知的Android java计时器

用于通知的Android java计时器,java,android,timer,notifications,Java,Android,Timer,Notifications,我正在用java为android构建一个应用程序。为此我有一个日历。它想这样做:每次8点,计时器都应该检查第二天是否有活动。如果有,它应该通知用户 通知不是问题,但我如何确定“触发点”8点钟的时间 在youtube上的教程中,它们总是有一个按钮作为触发器,但在我的例子中,我无法决定计时器何时像那样启动:( 这是我的尝试:(我想得到最后的历元数,并将其与实际时间进行比较) 希望你们能帮我…;)。而不是使用计时器。scheduleAtFixedRate使用以下方法: 计划在指定时间执行指定任务。如果

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

通知不是问题,但我如何确定“触发点”8点钟的时间

在youtube上的教程中,它们总是有一个按钮作为触发器,但在我的例子中,我无法决定计时器何时像那样启动:(

这是我的尝试:(我想得到最后的历元数,并将其与实际时间进行比较)


希望你们能帮我…;)。

而不是使用计时器。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);