当前位置: 首页 > news >正文

wordpress采集网站山东大学信息服务平台

wordpress采集网站,山东大学信息服务平台,WordPress评论区嵌套层样式,城市模拟建设游戏网站学更好的别人#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为2478字#xff0c;预计阅读6分钟 前言 Android的AIDL使用和异常报错都已经介绍过了#xff0c;今天这篇还是在原来的Demo基础上加入几个AIDL的进阶使用方法。 】 AIDL进阶使用 微卡智享 in,out,inout的使… 学更好的别人 做更好的自己。 ——《微卡智享》 本文长度为2478字预计阅读6分钟 前言 Android的AIDL使用和异常报错都已经介绍过了今天这篇还是在原来的Demo基础上加入几个AIDL的进阶使用方法。 】 AIDL进阶使用 微卡智享 in,out,inout的使用 关于in,out,inout在AIDL的基础介绍中有提到过 AIDL中还有定向的Tag包括了in、out、inout。其中 in 表示数据只能由客户端流向服务端 out 表示数据只能由服务端流向客户端而 inout 则表示数据可在服务端与客户端之间双向流通。 Vaccae公众号微卡智享Android Aidl跨进程通讯的简单使用 根据字面意思可以很简单的理解所以我们直接做一个函数实现inout的方法即可。 在服务端的Aidl文件中加入一个新的函数updateTestDatsList输入的参数设置为inout Build后在Service的object : ITestDataAidlInterface.Stub()里面写入实现这里我们先将传入的list里面再自定义加入一条然后插入到Service缓存的List列表中再将传入的listdata清空后把Service缓存中的所有数据都插入传入的listdata 因为是跨进程所以客户端需要将修改后的Aidl复制过来替换原来的然后在MainActivity中写入实现调用 运行效果 点击更新列表后的对比可以看到使用inout参数传入的list最后也已经修改完成。 AIDL使用Bundle传递多个数据 AIDL可以使用Bundle类封装通讯数据用于传递一些复杂的对象或者多个对象。 Bundle类是一个键值对的容器它可以存储不同类型的数据并且实现了Parcelable接口所以可以在进程间传输。 Service的AIDL接口加入新的函数transBundle传入的参数就是Bundle 在Service加入接口实现这里我们测试里面加入一个Float一个Int和一个List数据将原来的价格和数量都统一改为一样的数据后再将传入的list加入到后面最后展现出来 划重点 Android有两种不同的classloadersframework classloader和apk classloader其中framework classloader知道怎么加载android classesapk classloader继承自framework classloader所以也知道怎么加载android classes。但在应用刚启动时默认class loader是apk classloader在系统内存不足应用被系统回收会再次启动这个默认class loader会变为framework classloader了所以对于自己的类会报ClassNotFoundException就会出现android.os.BadParcelableException: ClassNotFoundException when unmarshalling 所以在bundle数据读取前先设置classloader后才能正确地读取自定义类 it.classLoader TestData::class.java.classLoader override fun transBundle(bundle: Bundle?): MutableListTestData {bundle?.let { it -/*Android有两种不同的classloadersframework classloader和apk classloader其中framework classloader知道怎么加载android classesapk classloader继承自framework classloader所以也知道怎么加载android classes。但在应用刚启动时默认class loader是apk classloader在系统内存不足应用被系统回收会再次启动这个默认class loader会变为framework classloader了所以对于自己的类会报ClassNotFoundException就会出现android.os.BadParcelableException: ClassNotFoundException when unmarshalling*///所以在bundle数据读取前先设置classloader后才能正确的读取自定义类it.classLoader TestData::class.java.classLoaderval price it.getFloat(price)val qty it.getInt(qty)mTestDatas.map { t-t.price pricet.qty qty}val list if (Build.VERSION.SDK_INT Build.VERSION_CODES.TIRAMISU) {it.getParcelableArrayList(listdatas, TestData::class.java)} else {it.getParcelableArrayListTestData(listdatas)}list?.let { item-mTestDatas.addAll(item)}}return mTestDatas} 客户端中一样要把AIDL复制过来后写实现方法 运行效果 关于oneway关键字 AIDL中的oneway关键字主要用来使IPC调用变成非阻塞的。 oneway需要注意的几点 将远程调用改为异步调用使得远程调用变成非阻塞式的客户端不需要等待服务端的处理只是发送数据并立即返回。要注意的是oneway修饰本地调用没有效果仍然是同步的客户端需要等待服务端的处理。 在同一个IBinder对象调用中会按照调用顺序依次执行不同的IBinder对象可能导致调用顺序和执行顺序不一致。 oneway不能带有返回值或抛出异常因为客户端是无法接收的。 Demo源码中也已经更新上传了。 源码地址 https://github.com/Vaccae/AndroidAIDLDemo.git 点击原文链接可以看到“码云”的源码地址 完 往期精彩回顾   Android Aidl跨进程通讯(二)--异常捕获处理     Android Aidl跨进程通讯的简单使用     Android BlueToothBLE入门三——数据的分包发送和接收源码已更新   ​
http://www.hkea.cn/news/14494572/

相关文章:

  • 网站怎样续费2021不良正能量免费网站app
  • 网站内页一般多久收录做网站一天
  • 网页网站的区别是什么网站建设的
  • 个人网站做接口可以么办公室装修设计效果图免费
  • 导航网站 php外管局网站做延期收款报告
  • 学习网站建设总结京东商城网站建设分析
  • asp网站开发企业门户网站建设方案
  • 开发一个网站系统报价轻芒小程序wordpress
  • 非响应式网站改响应式网站制作 天津
  • 帝国cms获取网站地址基础建设文本网站
  • 一键做网站的软件北京百度网讯科技有限公司
  • 个人做公司网站库存管理软件免费 哪个好
  • 为什么做网站门户网站建设 交流发言
  • 如何建开发手机网站首页四川省建设厅网站为什么打不开
  • 织梦搭建网站教程广告经营许可证
  • 建设本地网站北京建筑人才网
  • 做企业商城网站要多少钱龙川县建设网站
  • 做网站在哪买域名微官网与网站的区别
  • seo优化网站网页教学太原网站建设联系方式
  • 中国建设银行的网站特色福州模板建站定制网站
  • 珠海专业网站制作加强服务保障 满足群众急需需求
  • 网站在备案期间怎么建设成都网站建设今明互联
  • 用asp做网站系统步骤wordpress 积分 兑换
  • 网站开发网页超链接路径室内设计公司排名及案例
  • 做ppt介绍网站房产信息门户网站建设方案
  • 网站哪个语言好网络工具
  • 响应式网站开发视频网站上传不了图片不显示不出来吗
  • 宁波网站建设熊掌号seo分析
  • 模板网站是什么意思网站设计公司 北京
  • 网站建设仿站竞价培训