美文网首页
最简单的进程间通信方式

最简单的进程间通信方式

作者: wan7451 | 来源:发表于2019-04-12 13:52 被阅读0次

    MD 工作这么长时间,天天AIDL,居然忘记了最简单的进程间通信方式了!(脸红)
    那就是最不常用的 ContentProvider !
    以前在项目中多是用来读取联系人,获取系统资源文件信息.....


    ContentProvider 如何使用不细说,网上一大堆。
    今天主要说一个不是 ContentProvider 必须重写的方法 call

    @Nullable
    @Override
    public Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras) {
    
    }
    

    就是这个方法,可以被另一个进程调用。
    通过参数拿到调用进程传过来的数据,再通过方法返回值Bundle 将数据返回。


    别忘了声明 authorities

    <provider
      android:name=".provider.XXXXProvider"
      android:authorities="com.xxx.xxx.xxx"
      android:enabled="true"
      android:exported="true"/>
    

    另一个进程调用call 方法

    public static String getData(String data) {
        Uri uri = Uri.parse("content://com.xxx.xxx.xxx");
        Bundle extras= new android.os.Bundle();
        bundleArgs.putString("xxx", data);
        android.os.Bundle bundleResult = VirtualCore.get().getContext().getContentResolver().call(
                uri, "method", "arg", extras);
        return bundleResult.getString("xxx");
    }
    

    相关文章

      网友评论

          本文标题:最简单的进程间通信方式

          本文链接:https://www.haomeiwen.com/subject/skhcwqtx.html