Android Service和Activity以及Notification之间的通信

现在遇到这样的需求,当Service收到消息后,如果Activity在显示中,这通知Activity更新消息,如果没有则在通知栏显示通知消息,这个需求怎么能够实现?... 现在遇到这样的需求,当Service收到消息后,如果Activity在显示中,这通知Activity更新消息,如果没有则在通知栏显示通知消息,这个需求怎么能够实现? 展开
 我来答
匿名用户
推荐于2016-03-07
展开全部
  1. Activity在onCreate中注册一个广播,用于更新消息,onStop时取消注册。

  2. 加个标志位,在Activity创建和销毁的时候改变,在service中根据判断发送通知。

追问
第二点不是很懂,还请详细点!
追答
  1. 比如说你定义了一个全局变量bool SEND_NOTIFICATION=false,activity销毁之后,将SEND_NOTIFICATION=true。这样你在service中,如果SEND_NOTIFICATION=true就发送NOTIFICATION。这是一个方法。

  2. 你也可以注册两个BroadcastReceiver,接收同一个action,其实就是有序广播。一个在ActivityonCreate时注册,activity onDestory(或者onStop时)取消注册,这个广播用来更新界面消息,优先较高,在onReceive中更新界面后abortBroadcast;然后再注册一个发送Notification的广播,这个广播优先级较低;然后就可以用Context.sendOrderedBroadcast来发送action的广播。这样,如果你的界面在现实,就会调用优先级高的刷新消息,然后abort掉。如果你的界面不再显示了,就会调用优先级低的发送notification。

微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式