从service中传递到broadcast receiver中的数据如何在activity中获取到?

从service中传递到broadcast receiver中的数据如何在activity中获取到?

在service中已经将手机端应用软件的信息传递给广播了,然后activity端的onReceive方法也将其获取到了,但是这个数据如何存放到activity中呢?即使将应用信息的集合申明成全局变量,依然在onCreate函数中集合是空的

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 Jeremy936399 2018-05-25 04:07:51

接收器已经写在activity中了,但是依然在onReceive方法外面没有办法拿到接收器拿到的手机应用信息集合

  • 不需要在外面拿到数据,只要在onReceive()方法中获取到intent传过来的数据,调用Adapter重新设置数据,并且notifyDataSetChanged();刷新UI。
    2018-05-25 09:41:03
  • 提问者 Jeremy936399 回复 irista23 #2
    那这样的话我的思路就有了,在servie中获得searchView中的检索关键字,然后在service中获得应用信息,然后删选之后将结果的集合通过广播再发送回去,这样activity中的onReceive函数中获得的集合就是筛选之后的,然后直接讲数据源配置到adapter中就可以了,这样对吗?
    2018-05-25 09:48:18
  • irista23 回复 提问者 Jeremy936399 #3
    可以有更优化的方案程序启动就在Service中获取全部应用数据,并发送给activity,之后的筛选都是基于这个数据集合的筛选,减少每次用户输入筛选条件频繁的广播发送。
    2018-05-25 09:52:38
好帮手慕雪 2018-05-24 18:02:52

activity中去接收广播,接收器定义在activity中。或者activity中专门写一个接口,暴漏给外面,广播调用它进行显示UI都可以。祝:学习愉快

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android数据通信开发与应用2018版
  • 参与学习           人
  • 提交作业       147    份
  • 解答问题       687    个

本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师