跨进程又跨插件是不是不能用registerPluginBinder和fetchBinder通信
来源:7-10 插件间AIDL接口通信 (下)
路程
2021-01-06
两个问题,一个是注册aidl接口的时机,怎么在application中注册会被不同进程调用多次
二是跨进程跨插件 用registerPluginBinder和fetchBinder来通信 是否能切换进程,比如我想一个功能在某插件的A进程触发,调用到其他插件的B进程中去执行,
当我在我的插件中application中注册 aidl 接口的时候,如果我限制只在主进程注册,如下
if(如果是主进程) {
//对外注册aidl 功能接口供其它插件调用
RePlugin.registerPluginBinder(ImRongyunPluginConfig.KEY_INTERFACE, ImModuleFunctionImpl())
}
其他插件如果是运行在其他进程(非主进程) 来执行fetchBinder的话, , 我发现此时 RePlugin.fetchBinder ()始终为空,
打印了一下日志发现,application 中的onCreate 会被调用多次,基本上一个主进程 ,一个 什么p1 进程之类的。
有没有那种能获取到主进程注册的binder的办法啊。我希望其他插件的其他进程回调过来,能在我指定的进程执行。
写回答
1回答
-
qndroid
2021-01-07
第一个问题,在application初始化得时候,判断当前进程名,只在主进程中初始化,这个是常规操作。
第二个问题,aidl本身就是为了跨进程通信而存在的,感觉你取不到是因为第一个问题导致的,你先保证只初始化一次看看能行不
022021-01-08
相似问题