github.com/wengeoo/PEvent.git
1、ContentProvider query
作为 Android 四大基础组件之一的 ContentProvider 本来它的作用只是提供内容性质的跨进程访问。APP-A通过APP-B的ContentProvider相关实现,可以获取B的向外暴露的SQL或者SP数据,但是A如何通知B去更新ContentProvider的相关内容?
传统方式有1:广播;2:AIDL,弊端是使用流程相对繁琐
2、ContentProvider call
在 API 11 (Android 3.0) 中,ContentProvider 加入了一个新的方法,可以用来进行跨进程的方法调用,ContentProvider 中这个方法的定义如下:
Bundle call(String method, String arg, Bundle extras)
看看具体实现
A中实现
private void update(String status) {
getContext().getContentResolver().call(ACCOUNT_URI, "STATUS", status, new Bundle());
}
B中实现
@Override
public Bundle call(String method, String arg, Bundle extras) {
if ("STATUS".equals(method)) {
//dosomething
}
return null;
}

本文介绍Android中ContentProvider的跨进程调用方法,包括传统广播和AIDL方式的替代方案,即利用ContentProvider的call方法实现更简洁的远程过程调用。此外,还提出了一种基于ContentProvider和反射机制的基础库实现方案。

2378

被折叠的 条评论
为什么被折叠?



