位置: 编程技术 - 正文

Android中使用ContentProvider进行跨进程方法调用(android中使用md5后报非法延续字节)

编辑:rootadmin

推荐整理分享Android中使用ContentProvider进行跨进程方法调用(android中使用md5后报非法延续字节),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android中使用volley框架的步骤,android中使用volley框架的步骤,android中使用过哪些自定义View,android中使用_______的方式来管理任务中的活动实例,android中使用menu可能需要重写的方法,android中使用menu可能需要重写的方法,android中使用过哪些自定义View,android中使用_______的方式来管理任务中的活动实例,内容如对您有帮助,希望把文章链接给更多的朋友!

原文同时发表在我的博客 点我进入还能看到更多

需求背景

最近接到这样一个需求,需要和别的 App 进行联动交互,比如下载器 App 和桌面 App 进行联动,桌面的 App 能直接显示下载器 App 内的下载任务进度和状态。

寻找解决方案

从需求上知道了,主要问题在如何解决跨进程的通信上边。

AIDL

AIDL 即 Android Interface Definition Language的缩写,是专为 Android 中跨进程通信接口的描述语言。优缺点很明显,优点是稳定,快,Android 专门用于跨进程通信设计的。缺点是比较麻烦,AIDL 是通信的约定,参加通信的双方都需要把这个 AIDL 文件都加入自己的代码中,然后创建 Service 来实现访问和被访问。

ContentProvider

作为 Android 四大基础组件之一的 ContentProvider 本来它的作用只是提供内容性质的跨进程访问。但是在 API (Android 3.0) 中,ContentProvider 加入了一个新的方法,可以用来进行跨进程的方法调用,ContentProvider 中这个方法的定义如下:

Bundle call(String method, String arg, Bundle extras)

从易用性来讲,这个没有 AIDL 那么麻烦,而且扩展性更强,也没有 Broadcast 过于依赖系统,API 应该就是主要是缺点了,别的缺点暂时没发现,欢迎补充。

Broadcast

Android中使用ContentProvider进行跨进程方法调用(android中使用md5后报非法延续字节)

广播是最简单的:优点是把分发消息的任务全部交给 Android 系统了;缺点也是因为全交给系统了,很多地方不受控制。缺点:

虽然广播可以通过指定包名来进行发送指向性消息,但是却不能验证消息去向 App 的签名。系统重启之后,在系统的广播队列里边的消息就丢失了。实现

为了简要,主要讲讲 ContentProvider 吧。

ContentProvider

首先是下载器 App 的 ContentProvider 代码实现

在下载器 App 的 AndroidManifest.xml 中还需要添加 ContentProvider 的定义:

我特地加了authorities设置,这样在交互时候访问的 ContentProvider 的 URI 会看起来不一样,也不会暴露我真实的 ContentProvider 类

然后是桌面 App 的 ContentProvider 代码实现

在桌面 App 的 AndroidManifest.xml 中还需要添加 ContentProvider 的定义:

然后在桌面 App 中,就可以通过 LauncherContentProvider 的 download 方法和 pause 方法来调用下载器 App 的功能了(这两个方法写在这里不太合适,不过我仅仅是为了节省篇幅放一起了)。下载器 App 中被调用了方法,就会调用桌面 App 的更新状态。

这里只是演示了一个交互的过程,有更多问题欢迎大家一起讨论学习~~

引申

找不到 ContentProvider 的时候需要做一下空指针保护

签名校验

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android布局中的位置控制属性 一、gravity属性和layout_gravity属性1、共有属性值属性值代表的含义top,bottom位于其容器的顶部,底部left,right位于其容器的左侧,右侧center,fill居中,填满

Android布局优化 categories:Android在Android开发中,我们常用的布局方式主要有LinearLayout、RelativeLayout、FrameLayout等,通过这些布局我们可以实现各种各样的界面。与此同时,

Android相关属性 (1)Androidactivityandroid:allowTaskReparenting//是否允许activity更换从属的任务,比如从短信息任务切换到浏览器任务。android:alwaysRetainTaskState//是否保留状态不变

标签: android中使用md5后报非法延续字节

本文链接地址:https://www.jiuchutong.com/biancheng/370923.html 转载请保留说明!

上一篇:Android开发效率—Eclipse快捷键(android开发工具排行榜)

下一篇:Android布局中的位置控制属性(android中的布局分为6种,分别是)

  • 哪些支出可以税前扣除
  • 经营所得个税计算案例
  • 零申报还要抄税吗
  • 税金计提多了,交少了怎么处理
  • 车辆保险车船税怎么做会计分录
  • 报税盘金税盘领的发票能通用吗
  • 印花税账务处理
  • 成本法和权益法大白话
  • 把扣款挂到其它应收款的会计分录怎么做?
  • 自然灾害造成库存商品毁损
  • 为什么增值税可以抵扣
  • 公司贷款买车后影响公司收购吗
  • 外贸出口企业城市排名
  • 印花税漏报了要罚款吗
  • 滞留发票产生的原因主要包括哪些?
  • 农产品税率2020
  • 防伪税控开票系统SOAP服务端
  • 没有进项开销项发票是虚开发票吗
  • 其他权益工具投资公允价值变动怎么计算
  • appdata如何移动
  • 主体有哪些
  • 如何冲回以前年度账户
  • 要约与要约邀请的主要区别
  • 非上市公众公司收购办法
  • win10专业版下载教程
  • 购买办公用品是否缴纳印花税
  • 如何快速判断
  • 如何配置无线路由器参数
  • 新成立股份有限公司股本构成
  • 没有取得发票的成本可以税前扣除吗
  • 电脑桌面小工具软件
  • 公司给其他单位分红需要对方开票吗
  • php缓存原理
  • php fgets
  • 直线法计提折旧每年都一样吗
  • php23种设计模式
  • 临时存款账户销户
  • node安装配置环境变量
  • thinkphp自动加载类
  • 工程施工资产负债表存货计算公式
  • 法律服务费属于什么服务
  • 第一次购买金税盘会计分录
  • 长期股权投资减值准备是什么科目
  • 土地利息可以作为土增扣除吗
  • 公司的个人所得税是什么意思
  • 别人公司过账用自己的银行卡会查吗
  • 存货在报表里是如何体现的
  • 汇算清缴时发现收入少了
  • 发票普通发票
  • 核价人员要对哪些方面的价格进行核定,怎么核?
  • 进口关税征收方法
  • 哪些住宿费不属于差旅费
  • 哪些减值准备一经计提不得转回
  • 借主营业务成本贷库存商品什么意思
  • mysql数据库如何使用
  • cool file viewer pro是什么软件
  • linux mv命令详解
  • ghost 硬盘对考
  • Win10 Mobile 10581预览版升级界面曝光 上手视频观赏
  • win8.1使用技巧大全
  • Ubuntu 14.04安装java的方法以Ubuntu14.04为例
  • win8微软拼音输入法打不出中文
  • win7系统配置怎么设置
  • 日历功能在哪里设置
  • Windows 8 Consumer Preview 中的新热键介绍
  • ExtJS4给Combobox设置列表中的默认值示例
  • Node.js+ES6+dropload.js实现移动端下拉加载实例
  • shell脚本中实现rm -fr !(file1)
  • window.showModalDialog谷歌不兼容
  • 个人所得税发票
  • 文化事业建设税减免政策2023
  • 江苏省税务局土地增值税清算公告
  • 个人所得税自行纳税申报表(A表)
  • 成品油消费税税率2023
  • 药店迁址流程2019
  • 光明区新区
  • 中国税收居民申报
  • 江之都财税服务集团有限公司是私企吗
  • 上海市浦东新区人民医院
  • 电子税局个税申报步骤
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设