我需要使用(greenrobot) EventBus.与远程服务进行通信,不幸的是,它似乎无法与IPC一起工作。看看代码,我也找不到解决办法。任何帮助都将不胜感激!
额外的问题--还有其他支持工控机的EventBuses (安卓)吗?
发布于 2014-04-20 23:01:52
我需要使用(绿色机器人) EventBus与远程服务进行通信。
绿色机器人的EventBus (就像Square的Otto和LocalBroadcastManager
一样)的全部意义在于而不是使用IPC。
任何帮助都将不胜感激!
不要使用绿色机器人的EventBus作为工控机。使用Android的众多IPC机制中的一种用于IPC:
startActivity()
startActivityForResult()
startService()
bindService()
sendBroadcast()
及其变体(如sendOrderedBroadcast()
)ContentProvider
发布于 2016-09-19 06:37:47
有一个IPC EventBus选项,允许您通过IPC发送事件。https://github.com/NewtronLabs/IpcEventBus
根据文档,要获得一个事件,您所要做的就是:
public class Listener implements IIpcEventBusConnectionListener, IIpcEventBusObserver {
public Listener() {
String targetApp = "com.packagename";
IIpcEventBusConnector connector =
ConnectorFactory.getInstance().buildConnector(context, this, targetApp);
connector.startConnection();
}
@Override
public void onConnected(IIpcEventBusConnector connector) {
connector.registerObserver(this);
}
@Override
public void onEvent(IEventIpc event) {
Log.d("ipceventbus", "Received event: " + event.getClass());
}
@Override
public void onDisconnected(IIpcEventBusConnector connector) {
}
}
而在另一边,你发布这样的事件:
IpcEventBus.getInstance().postEvent(new MyEvent());
我创建了两个应用程序,它们可以互相发送事件。
发布于 2017-03-20 04:48:34
另一个更接近EventBus语法的库是HermesEventBus。它同时支持IPC (和内部进程)。
尽管它们应该只是从EventBus派生出来的,所以我们只需要注入EventBus对象(实际上是一个HermesEventBus),而不必到处更新代码。https://github.com/eleme/HermesEventBus
https://stackoverflow.com/questions/23188426
复制相似问题