关于序列化的问题

关于序列化的问题

我自己定义的appinfo类用来包装获取的应用信息,里面有string name和drawble icon字段,用Parcelable
序列化的话,对于每个字段都要去readxxx,但是drawable怎么办没有readdrawable方法啊

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

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

3回答
Tender10 2017-11-01 18:37:15

获取应用的相关信息不用自己去定义类,直接使用ApplicationInfo类就可以了。

// 获取已经安装的所有应用信息    

List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

下面就是获取相关应用名称、版本、以及应用图表的方法。

AppInfo appInfo = new AppInfo();
//获取应用名称
appInfo.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
//获取应用包名
appInfo.setPackageName(packageInfo.packageName); 
//获取应用版本名
appInfo.setVersionName(packageInfo.versionName);
//获取应用版本号
appInfo.setVersionCode(packageInfo.versionCode);
//获取应用图标
appInfo.setAppIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));


提问者 shammgod4342601 2017-11-01 18:14:33

http://img1.sycdn.imooc.com//climg/59f99d9a0001679809000418.jpg

我是这样写的,appinfo是我自己封装的drawable和name对象

http://img1.sycdn.imooc.com//climg/59f99e2e0001073308230214.jpg

但是出现这样的问题,是需要appinfo对象用parcelable进行序列化吗?但是序列化的话appinfo里面的drawable字段怎样序列化?

Tender10 2017-11-01 16:44:18

可以使用ApplicationInfo类,它是android.content.pm包下的一个实体类,专门用于封装应用的信息。首先,通过getPackageManager()的getInstalledApplications(0)得到系统安装的所有程序包的ApplicationInfo对象。再通过ApplicationInfo的loadIcon(PackageManager)方法就可以得到一个Drawable类型的图标信息。


  • 老师,这app搜索框的搜索功能逻辑是什么,想不出来
    2018-02-24 12:41:39
  • 就是拿你搜索框中输入的内容,与你手机上的APP进行对比,如果应用名称包含你输入的内容,则在列表中显示,否则不显示
    2018-02-25 18:43:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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