Android 使用报警管理器启动服务

Android 使用报警管理器启动服务,android,alarmmanager,Android,Alarmmanager,我有一些代码要在每天凌晨3点执行。我已经阅读了,似乎我可以使用AlarmManager激发一个意图(我想是活动还是服务?),然后,在该意图中,在Android通知区域创建并发布一条消息 Calendar threeAM = Calendar.getInstance(); threeAM.set(Calendar.HOUR_OF_DAY,2); threeAM.set(Calendar.MINUTE,0); threeAM.set(Calendar.SECOND,0); threeAM.set(C

我有一些代码要在每天凌晨3点执行。我已经阅读了,似乎我可以使用AlarmManager激发一个意图(我想是活动还是服务?),然后,在该意图中,在Android通知区域创建并发布一条消息

Calendar threeAM = Calendar.getInstance();
threeAM.set(Calendar.HOUR_OF_DAY,2);
threeAM.set(Calendar.MINUTE,0);
threeAM.set(Calendar.SECOND,0);
threeAM.set(Calendar.MILLISECOND,0);
AlarmManager alarmManager =
         (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, myNotifier.class);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, threeAM.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY, PendingIntent.getService(context, 1, i , 0));
Log.i("Service TEST", "Alarm set?" );
它在代码中运行时没有问题,但没有显示已设置报警,并且活动未启动。我正在使用我知道有效的活动。我试着用try/catch把它包起来,logcat里什么都没有


任何帮助都将不胜感激!!:)

我认为您应该注册您的活动以接收引导广播接收器,以便您的应用程序在操作系统引导完成时启动。这里是链接

我希望这对你有帮助


它在通知方面没有帮助,但可以解决活动未启动的问题。

只有在凌晨3点之前执行代码,代码才能正常工作。否则,您将在过去设置警报。

我在测试时已尝试将其设置为仅提前几分钟。似乎开始时间应该第一次启动活动,然后在interval参数上重复,对吗?有没有办法检查设置了哪些警报?@cinqoTimo:“似乎开始时间应该是第一次启动活动,然后在interval参数上重复,对吗?”--是的,但我从未使用
AlarmManager
启动活动。“有没有办法检查设置了哪些警报?”--警报被隐藏在
dumpsys
输出的某处。