Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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中不工作_Android_Android Layout_Broadcastreceiver_Alarmmanager - Fatal编程技术网

警报管理器在Android中不工作

警报管理器在Android中不工作,android,android-layout,broadcastreceiver,alarmmanager,Android,Android Layout,Broadcastreceiver,Alarmmanager,我需要每隔一段时间设置一个闹钟。为了实现这一目标,我写道: 测试片段类 报警接收器类 } 我将调试点放在Toast.makeText(上下文,“我正在运行”,Toast.LENGTH\u SHORT.show()

我需要每隔一段时间设置一个闹钟。为了实现这一目标,我写道:

测试片段类 报警接收器类 }

我将调试点放在
Toast.makeText(上下文,“我正在运行”,Toast.LENGTH\u SHORT.show()
下午4点=
1499510100000L
下午4:03=
149951020000升


我做错了什么?此外,我想在
onReceive
方法中添加一个本地通知。

您应该使用
日历
对象来设置报警时间

对于下午4点的闹钟,您可以执行以下操作:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 16);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
然后设置
AlarmManager
,如前所述,但最后一行使用:

alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
也许您想使用重复报警,甚至是
处理程序


如果是这样,您应该访问:

4PM=14995101000l 4:03PM=14995102000l
错误。这些值是自运行报警管理器以来,它应该等待的毫秒数。这不是时间价值。顺便说一下,1499510100000相当于大约47年半。你可能不想等这么长时间,看看你的闹钟是否响了……;)1499510100000L来自哪里?改用日历。@Rotwang@Mehran此值可能错误。我将检查它,但这些值来自数据库,该数据库使用
Java.Util
time library以毫秒为单位存储时间。我不能在这里使用
new Date().getTime()
而不是
Calendar
吗?这些值来自数据库,它使用
Java.Util
时间库以毫秒为单位存储时间。我不能在这里使用
newdate().getTime()
而不是
Calendar
?让我们以毫秒为单位计算两次(可能更多),因为我已经有了以毫秒为单位的日期,日历也会做同样的事情
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 16);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);