首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >许多PendingIntents、BroadcastReceiver和活动

许多PendingIntents、BroadcastReceiver和活动
EN

Stack Overflow用户
提问于 2013-02-09 00:09:13
回答 1查看 244关注 0票数 0

我正在写一个简单的提醒应用。所有提醒都存储在数据库中。我有一个服务,查询数据库,并在AlarmManager中与额外的和不同的时间戳的pendingIntents。我也有一个广播接收器来捕捉来自AlarmManager的意图。该广播接收器开始具有提醒选项的提醒活动(解除、休眠等)。现在这个方案起作用了,但并不像我认为的那样好。如果我在前台有一个提醒活动,那么新的提醒活动就会在它上面开始(当前转到后台)。我不想用新的活动覆盖当前的活动,而只是通知用户,在当前活动之后会显示一些新的提醒。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-10 22:51:38

我想,我已经为我的任务找到了一个很好的解决方案:

1)我在AndroidManifest中设置了我的提醒活动launchMode为"singleTop“。关于launchMode的更多信息在这里http://developer.android.com/guide/topics/manifest/activity-element.html两个字,如果我的广播接收器试图启动已经在前台的活动,它将调用onNewIntent,而不是onCreate。

2)在我的活动中,我必须覆盖onNewIntent方法,并在ArrayList中存储所有传入的意图(来自广播)。

3)在finish()之前,我必须从ArrayList中删除当前意图,当它的大小变为零时,我实际上已经完成了activity ()。

一个重要的补充。在广播接收器中,意图必须有FLAG_ACTIVITY_SINGLE_TOP,如:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

如果没有它,如果没有主活动,onNewIntent将不会被调用。正如我所看到的,这是一个已知的问题:在Android1.6中发现了http://code.google.com/p/android/issues/detail?id=4155错误,并且仍然存在。因此,现在它是功能:)

对不起,我的英文很容易读,但很难写:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14776698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档