9

(greenrobot) EventBusを使用して、リモート サービスと通信する必要があります。残念ながら、IPC では動作しないようです。コードを見ると、回避策もわかりません。どんな助けでも大歓迎です!

おまけの質問 - IPC をサポートする他の EventBuses (Android 用) はありますか?

4

3 に答える 3

7

(greenrobot) EventBus を使用して、リモート サービスと通信する必要があります。

Square の Otto や のような greenrobot の EventBus の要点は、IPC を使用LocalBroadcastManagerないことです。

どんな助けでも大歓迎です!

greenrobot の EventBus を IPC に使用しないでください。IPC には、Android の無数の IPC メカニズムのいずれかを使用します。

  • startActivity()
  • startActivityForResult()
  • startService()
  • bindService()
  • sendBroadcast()およびそのバリエーション (例: sendOrderedBroadcast())
  • aContentProvider
于 2014-04-20T23:01:52.003 に答える
5

IPC 経由でイベントを送信できる IPC EventBus オプションがあります。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());

2 つのアプリを作成したところ、互いにイベントを送信できました。

于 2016-09-19T06:37:47.447 に答える