0
我能设置AlarmManager报警被触发每24小时多次:如何设置AlarmManager对于必须重复通知了一天的日常
Calendar c= Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY,holder.hours);
c.set(Calendar.MINUTE,holder.min);
Intent in=new Intent(Reminder_entry.this,Notificationservice.class);
in.putExtra("name",holder.name);
PendingIntent pi=PendingIntent.getService(Reminder_entry.this, holder.pi, in,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManageram=AlarmManager)Reminder_entry.this.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), 1000 * 60 * 60 *24,pi);
,但我不能把它所以它可以每天每6小时重复讲话。 我的研究表明,我将不得不雏菊链警报器,所以如果一个熄灭,我必须为第二天设置。你能帮助我理解如何做到这一点吗?我怎样才能重置警报,当它被触发,我的待决意图处理,因为我的未决意图调用服务,我不知道如何设置服务中的警报。
这是我的服务:
public class Notificationservice extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String name=intent.getStringExtra("name");
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Intent i=new Intent(Notificationservice.this,Notification_landing.class);
PendingIntent pi=PendingIntent.getActivity(Notificationservice.this, 0, i,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder b= new NotificationCompat.Builder(Notificationservice.this);
b.setAutoCancel(true).setContentTitle(name).setContentText("time to take "+name).setSmallIcon(R.drawable.ic_launcher).setSound(soundUri);
b.setContentIntent(pi);
Notification n=b.build();
NotificationManager nm=(NotificationManager)Notificationservice.this.getSystemService(NOTIFICATION_SERVICE);
nm.notify(1,n);
return super.onStartCommand(intent, flags, startId);
}}
那么当你以前的报警触发你的设置这个新的报警?我的意思是我的应用程序是一种药物提醒,因此用户可能每隔5天每隔5小时就要吃药。想象今天是星期一,所以在4次重复之后,我必须在48小时后每5小时重置闹钟。 – 2015-04-06 08:53:58
是的,在前一次发射后设置新的警报。 因此,对于您的情况,您可能需要添加一些额外的逻辑来确定是否为另外2天或5小时的警报。例如也许有一个警报,接着是每5小时4次,然后是48小时后再次发出警报(然后重复周期)。 – aoemerson 2015-04-06 09:35:28
终于破解了,非常感谢你的帮助。如果我存储唯一的待处理意图,如果用户选择删除药物,是否可用于取消警报? – 2015-04-06 17:23:05