我需要在不同的时间每天触发通知

时间:2013-10-09 17:09:06

标签: android android-service android-notifications android-alarms

我有两次,每天这些时间与前一天不同,例如 提醒1天1:5:30 reminder1-day2:5:35

我正在从互联网上获取json对象的时间...... 我需要的是在系统的时钟到达提醒时间时触发通知,我已经完成的是包含一个alrm manger的动作,它占用了这个提醒的时间,并且在广播接收器上它创建了一个通知; 但这不是一个好的解决方案,因为我不能做一个重复的警报,因为我每天都有不同的时间...... 我无法在广播接收器上调用相同的报警方法,因为我需要再次创建整个活动以再次获取所有变量,因为它们将不再存在...

有没有办法创建一个能够一直工作的服务,即使手机重新启动它也会继续工作并比较系统的时间和提醒的时间,并在两次相等时触发通知还是有另一种解决方案? 感谢。

修改

public void scheduleAlarm()
        {
            Long time=calendar.getTimeInMillis()+5*60*1000;
         //other lines to get the real time..  





           Intent intentAlarm = new Intent(this, TimeAlarm.class);


            AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);


           alarmManager.set(AlarmManager.RTC_WAKEUP,time, PendingIntent.getBroadcast(this,1,  intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));

        }

2 个答案:

答案 0 :(得分:0)

您还可以采用另一种方法,例如获取新时间,取消注册并在触发待处理警报时注册您的日程安排,但也可能是涉及使用服务的解决方案,该服务具有小而精心的配置以允许您的服务表现良好取决于系统状态。

答案 1 :(得分:0)

它需要在服务中编写我的警报方法,并且一旦触发警报就获得该服务中所需的所有变量将被意图广播接收器捕获,该接收器将创建通知并使警报再次起作用。 ..