首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GreenRobot事件总线在安卓系统中的应用

GreenRobot事件总线在安卓系统中的应用
EN

Stack Overflow用户
提问于 2014-04-20 22:44:42
回答 3查看 1.5K关注 0票数 9

我需要使用(greenrobot) EventBus.与远程服务进行通信,不幸的是,它似乎无法与IPC一起工作。看看代码,我也找不到解决办法。任何帮助都将不胜感激!

额外的问题--还有其他支持工控机的EventBuses (安卓)吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-20 23:01:52

我需要使用(绿色机器人) EventBus与远程服务进行通信。

绿色机器人的EventBus (就像Square的Otto和LocalBroadcastManager一样)的全部意义在于而不是使用IPC。

任何帮助都将不胜感激!

不要使用绿色机器人的EventBus作为工控机。使用Android的众多IPC机制中的一种用于IPC:

  • startActivity()
  • startActivityForResult()
  • startService()
  • bindService()
  • sendBroadcast()及其变体(如sendOrderedBroadcast())
  • 一个ContentProvider
票数 7
EN

Stack Overflow用户

发布于 2016-09-19 06:37:47

有一个IPC EventBus选项,允许您通过IPC发送事件。https://github.com/NewtronLabs/IpcEventBus

根据文档,要获得一个事件,您所要做的就是:

代码语言:javascript
运行
复制
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) {

    }
}

而在另一边,你发布这样的事件:

代码语言:javascript
运行
复制
IpcEventBus.getInstance().postEvent(new MyEvent());

我创建了两个应用程序,它们可以互相发送事件。

票数 5
EN

Stack Overflow用户

发布于 2017-03-20 04:48:34

另一个更接近EventBus语法的库是HermesEventBus。它同时支持IPC (和内部进程)。

尽管它们应该只是从EventBus派生出来的,所以我们只需要注入EventBus对象(实际上是一个HermesEventBus),而不必到处更新代码。https://github.com/eleme/HermesEventBus

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23188426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档