如何将信息通过广播发送到Activity中?

如何将信息通过广播发送到Activity中?

http://img1.sycdn.imooc.com//climg/5bfbd7c00001f75605440499.jpg

不知道应该如何对获取到的app数据进行传输。

正在回答

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

1回答

你可以直接通过PackageManager 的getInstalledApplications()获得ApplicationInfo列表(ApplicationInfo是系统提供的类,并且是可序列化的,所以可以putParcelableArrayListExtra来传递),例如存放于ArrayList<ApplicationInfo> applicationInfos ,再通过 intent.putParcelableArrayListExtra("app_info", applicationInfos);发送广播时整体的传递出去。接收方整体的接收遍历循环ApplicationInfo 对象,通过loadLabel()和loadIcon()来获取信息。祝:学习愉快


  • punch_xu 提问者 #1
    如何使用loadLabel()和loadIcon()来获取信息?
    2018-11-27 16:39:20
  • punch_xu 提问者 #2
    我的发送端: PackageManager pManager = this.getPackageManager(); //获取手机内所有应用 ArrayList<ApplicationInfo> applicationInfos = (ArrayList<ApplicationInfo>) pManager.getInstalledApplications(0); //发送广播给receiver Intent intent = new Intent(CUSTOM_ACTION); intent.putParcelableArrayListExtra("app_info",applicationInfos); this.sendBroadcast(intent); 我的接收端: //广播接收 private BroadcastReceiver AppReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { applicationInfos = intent.getParcelableArrayListExtra("app_info"); Log.d(TAG, "onReceive: "+applicationInfos.get(100).loadLabel(pm).toString()); } }; 这一条log是打印不出来的
    2018-11-27 16:42:07
  • 好帮手慕雪 回复 提问者 punch_xu #3
    applicationInfos.get(100).loadLabel(pm).toString());你怎么知道你有101个应用呢?你把它放进for (ApplicationInfo appinfo : applicationInfos) 去遍历着loadLabel(pm)
    2018-11-27 16:58:54
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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