假设我正在使用 otto 通过总线发送事件。是否可以设置另一个服务,该服务在可以监听相同总线事件的单独进程上运行?
我认为因为它是另一个 JVM,所以总线事件不会传递给其他进程。问题出在 otto 我不确定 Square 是否正在使用可以跨越多个进程或广播接收器等的 Intent 。有人可以确认吗?
基本上可以说我有进程 1,它将事件推送到总线上,并且可以说我在进程 2 中有一些方法/类订阅了该事件。进程 2 能接收到事件吗?
最佳答案
IPC EventBus是一种允许用户通过 IPC 发送事件的解决方案。
使用
将依赖项添加到您的 build.gradle
compile 'com.newtronlabs.ipceventbus:ipceventbus:4.4.0'
实现接口(interface)以获取事件报告。
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().getSimpleName());
}
@Override
public void onDisconnected(IIpcEventBusConnector connector)
{
}
}
要发帖你可以给我们:
IpcEventBus.getInstance().postEvent(new MyEvent());
关于android - 其他进程可以看到总线事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067661/