android - 其他进程可以看到总线事件吗?

标签 android process ipc square otto

假设我正在使用 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/

相关文章:

php - Android登录验证失败

android - bottom-border + border-radius 不工作 Galaxy S4

c - 将数据从 cygwin 可执行文件 [C] 传输到托管程序 [托管 C++]?

c# - 如何在任务管理器中拥有不同的进程名称(当前进程)名称?

javascript - Electron 中2个浏览器窗口之间的通信

python - Linux 中 Python 父进程和 C 子进程之间的通信

java - 关于android中controltransfer设置USB通信的说明

android - 无法扩展 Facebook 访问 token

java - 查找关联的程序以使用 Java 打开文件

javascript - 如何在 child_process spawn() 调用的输出的每一行加上文本前缀?