我的应用程序显示了一个网站的内容,该网站也有一个通知系统。我想显示是否有新通知,并且我正在使用一个AlarmManager
调用IntentService
.
我的问题是:我应该在哪里开始/注册这个AlarmManager
?我将它放在onCreate()
我的活动中只是为了进行概念验证(并且它工作正常,非常感谢:)),但如果你启动该活动两次,你会收到多个警报。
我想出的唯一可能的解决方案是这个,但我不知道这是否是最佳实践
onCreate()
如果首选项“警报已启动”为假,则启动管理器- 设置一些在首选项中启动的变量。
现在,如果警报由于某种原因停止,则无法重新启动它。因此,一个变体将是:
- 总是在
onCreate()
- 然后总是设置闹钟。
这似乎是一种常见的模式:希望通过警报定期获取信息,而不是多次设置该警报。我该怎么做?何时、何地以及如何登记警报?
另外,继续@Zelimir 的评论:您可以检查某个警报是否已设置好?
理想情况下,无论活动是否启动,都会设置警报,但这可能是另一回事。
为了完整起见,这是我目前用来启动警报的代码:
AlarmManager alMan = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(this, CommentService.class);
PendingIntent penInt = PendingIntent.getService(this, 0, i, 0);
alMan.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(),
AlarmManager.INTERVAL_FIFTEEN_MINUTES,
penInt);
为了更完整,应用程序描述/情况。
该应用程序基本上显示来自某个页面的博客(如果您愿意,可以显示期刊)。它具有添加条目、查看条目、添加评论等活动。在“母亲”网站上,有一个接收通知的选项(例如,当您收到消息时,您也会在此处看到的号码)。我想显示是否有新消息,因此每 xx 分钟检索一次。它现在会显示在通知栏中,但稍后可能会提供某种小部件。
如果您需要更多信息:该应用名为 Androblip,它支持名为 blipfoto.com 的网站