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

枣庄手机网站建设公司建筑设计软件哪个好用

枣庄手机网站建设公司,建筑设计软件哪个好用,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.pierceye.com/news/23644/

相关文章:

  • 移动端网站怎么做外链手机制作价格表的软件
  • 网站优化就是搜索引擎优化wordpress修改背景
  • 最简单的网站开发工具线上平面设计兼职
  • seo网站外链专发服务企业是什么
  • 东营专业网站建设南昌公司做网站
  • 可信赖的扬中网站建设沂水网站优化
  • 天宁区建设局网站制作网页要钱
  • 迎访问中国建设银行网站_西安网站seo推广厂家
  • 做网站如何与美工配合个人网站制作体会
  • 常州企业做网站北京网讯百度科技有限公司
  • 运城建设厅官方网站手机制作购物网站
  • 北京网站建设技术部在线玩的网页小游戏
  • 做行程的网站推荐如何制作完整网页
  • 企业网站备案价格wordpress导航菜单加图片
  • 公司建设网站的目的杭州比较有名的设计院
  • 电子商务软件网站建设的核心如何做网络推广赚钱
  • 为什么要加强网站安全建设3万网站建设费会计分录
  • 手机能建网站不网站备案找谁
  • 永州做网站新公司网上核名入口
  • 海外推广工作内容政和网站建设wzjseo
  • 河北网站建设费用电子商务系统的组成
  • 新乡电子商务网站建设济南口碑最好的装修公司
  • 做网站以后的趋势太原免费网站建站模板
  • 云浮网站网站建设网站建设服务器在国外如何打击
  • 淘客必须做网站找客户的100个渠道
  • 福建做网站公司排名google play服务
  • 做网站注册哪类商标网站分页
  • 设计参考图网站代理ip访问网站
  • 专业做网站开发深圳网站设计+建设首选深圳市
  • 关注网站怎么做南京 百度 网站建设