【问题标题】:For loop with AlarmManager Android Application使用 AlarmManager Android 应用程序的 For 循环
【发布时间】:2012-05-08 05:18:43
【问题描述】:

我正在尝试制作一个小型应用程序,它每 10 分钟显示一次通知,直到达到 2 小时,然后警报应该停止,当我使用 setRepeat() 它运行良好但我无法停止它,正如我在我的预设问题HERE,,

我尝试了很多方法,但还是有问题警报没有停止...

我有个想法在循环中使用mAlarmManager.set(),我写了一段代码,但循环只启动一次警报..

所以,我在这里问我如何实现这个想法并每 10 分钟显示一次通知,直到 2 小时!!!

如果你能提供帮助,我将不胜感激

提前谢谢...

【问题讨论】:

标签: java android alarm


【解决方案1】:

你不想把它放在一个循环中。相反,让警报的未决意图触发代码检查已经过去了多少时间,并在适当的情况下取消警报。 (这将进入您创建 PendingIntent 的类的 onReceive 方法中。)

或者,您可以从开始时间开始设置两个小时的另一个闹钟,这将触发代码以取消重复闹钟。

【讨论】:

  • 感谢您的回复我认为您的第一个解决方案很好,但我不知道如何实施它!将不胜感激你解释更多...再次感谢
  • 如果超时我应该在哪里取消警报!
  • 如果您发布从 AlarmManager 接收意图的类以显示您的通知,我会向您展示。您可能只想在该类的 onReceive() 方法上使用它。
【解决方案2】:

您也可以在 for 循环中设置警报。

例子:

long next=0;
for (int i = 0; i < 12; i++) {
  alarmManager.set(AlarmManager.RTC_WAKEUP, mCurrentTime + 10*60*1000 + next, pendingIntent);
  next+=10*60*1000;
}

【讨论】:

  • 我给你的代码是在当前时间后 10 分钟设置一次闹钟。 For 循环执行 12 次,这意味着 12*10 = 120minutes=2 小时您应该使用变量更改参数 mCurrentTime 和 pendingIntent。
猜你喜欢
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多