Nan*_*nne 6 service android alarmmanager
我的应用程序显示了也有通知系统的站点的内容.我想显示是否有新的通知,我正在使用一个AlarmManager调用IntentService.
我的问题是:我应该在哪里开始/注册这个AlarmManager?我把它放在onCreate()我的活动中只是为了概念验证(它的工作正常,非常感谢:)),但是如果你要开始两次这样的活动,你会得到多个警报.
我提出的唯一可能的解决方案就是这个,但我不知道这是否是最好的做法
onCreate()如果首选项"alarm started"为false ,则启动管理器现在,如果由于某种原因警报停止,则无法重新启动它.所以,变化将是:
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);
Run Code Online (Sandbox Code Playgroud)
为了更完整,应用程序描述/情况.
该应用程序基本上是从某个页面显示博客(如果你愿意的话).它有添加条目,查看条目,添加评论等的活动.在"母亲"网站上有一个接收通知的选项(例如,当您收到消息时,您在此处看到的号码也是如此).我想显示是否有新消息,因此每隔xx分钟检索一次.它现在会显示在通知栏中,但它可能会在以后提供某种小部件.
如果您需要更多信息:该应用程序名为Androblip,它支持名为blipfoto.com的网站
何时、何地以及如何登记警报?
这是不可能抽象地回答的。这完全取决于您的应用程序的业务规则,您拒绝在问题中提供这些规则。
如果监控始终发生,典型的模式是注册警报:
onCreate()首次运行应用程序时的主要活动BOOT_COMPLETED BroadcastReceiver,处理重新启动,这会擦除AlarmManager名册你能检查一下某个闹钟是否已经设置了吗?
不可以,但您可以毫无问题地取消它。只需创建一个等效项PendingIntent并cancel()调用AlarmManager.
| 归档时间: |
|
| 查看次数: |
1046 次 |
| 最近记录: |