Android 安卓&x27;报警管理器
您好,我有一个关于android的报警管理器的问题,我想安排一个使用初始间隔执行的报警,并且能够由用户更改。我的代码是:Android 安卓&x27;报警管理器,android,Android,您好,我有一个关于android的报警管理器的问题,我想安排一个使用初始间隔执行的报警,并且能够由用户更改。我的代码是: long firstTime = SystemClock.elapsedRealtime(); mAlarmSender = PendingIntent.getService(mContext, 0, new Intent(mContext,AlarmService_Service.class), 0); this.setInterval(Integer.parseInt
long firstTime = SystemClock.elapsedRealtime();
mAlarmSender = PendingIntent.getService(mContext, 0, new Intent(mContext,AlarmService_Service.class), 0);
this.setInterval(Integer.parseInt(Interval));
configShared.edit().putInt("interval", this.getInterval()).commit();
// Schedule the alarm!
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,this.getInterval(), mAlarmSender);
this.getInterval()是一个保存间隔的方法,用于检查用户是否更改了间隔
阅读我在alarmManagers setRepeating方法的参数下找到的文档,该方法说:
使用适当的时钟(取决于闹钟类型)触发闹钟应首先关闭的时间
这到底是什么?当我改变时间间隔时,闹钟取消了吗?还有一个问题,因为我喜欢这段代码每5分钟执行一次,这将每5分钟+第一次间隔执行一次,对吗
这究竟是什么
这似乎是不言自明的。这是闹钟第一次响的时候。随后的警报将在该时间之后的指定时间段发出
当我改变时间间隔时,闹钟取消了吗
没有“改变间隔”这样的事情。您可以设置报警和取消报警。您不能更新报警,除非取消旧报警并添加新报警
还有一个问题,因为我喜欢这段代码每5分钟执行一次,这将每5分钟+第一次间隔执行一次,对吗
第一个将在
第一次出现
。第二次将在第一次时发生
再加上五分钟。第三次将在第一次
加上十分钟时发生。等等由于现在是第一次,因此第一次报警应立即发出。根据文档“如果已经为相同的目的安排了报警,则将首先取消。”这不允许您更改间隔吗?因为更改间隔会取消旧警报,并使用新警报设置新警报interval@maxsap:那应该行,不过我个人会取消并设置下一个。我们的代码和<代码>意向书之间有太多的间接层,我不喜欢。如这里所贴:代码的工作时间间隔为5-10-20-30分钟,但当我将其设置为1小时时,报警管理器会表现出奇怪的行为,间隔会变得非常大(3.8小时),我会尝试取消报警并设置一个新的,也许这就是解决这个问题的办法。谢谢你的建议