1

だから、私はGreenRobotsのウェブサイト上で述べた以下の機能を使用したいと思い、greenrobot eventbusを使ったネットワーク通信の使い方は?

EventBusはあなたのためにスレッド処理できます。イベントは投稿スレッドから別のスレッドに投稿することができます。一般的な使用例として、UIの変更が挙げられます。 Androidでは、UIの変更はUI(メイン)スレッドで行う必要があります。一方、ネットワーキングや時間のかかる作業は、メインスレッド上では実行しないでください。

私のやりたいことは、私のアンドロイドアプリでは、すべてのネットワークタスク(サーバーからのデータの送受信)を処理するイベントを作成したいと考えています。

これを正確に行うにはどうすればよいですか?

iはイベントPOJOでのネットワーク呼び出しを行うと、その後のポストネットワーク呼び出しタスクを実行するためにOnEventのを使用する必要があります(私はこれが正しいか、それをあると思ういけない?)

編集:スレッドのイベント・バスを使用してもよいですすべてのOnEvent呼び出しが同期して順番に実行されるため、最良の選択肢ではありません。その結果、バスのブロックが発生する可能性があります。しかし、以下の答えは、すべてのことが要件であればそれができる方法です。

答えて

0

イベントバスが不要なアーキテクチャを使用することをお勧めします。イベントバスはまだまだ便利で、あなたが探しているものをgetting started guideに見つけることができると思います。

いくつかのサンプルコード:

public class EventBusExample extends Activity { 

    @Override protected void onStart() { 
    super.onStart(); 
    EventBus.getDefault().register(this); 
    EventBus.getDefault().post(new BackgroundWorkEvent()); 
    } 

    @Override protected void onStop() { 
    super.onStop(); 
    EventBus.getDefault().unregister(this); 
    } 

    @Subscribe(threadMode = ThreadMode.ASYNC) 
    public void doBackgroundWork(BackgroundWorkEvent event) { 
    // do background work here 
    // when finished, post to ui thread 
    EventBus.getDefault().post(new UiWorkEvent()); 
    } 

    @Subscribe(threadMode = ThreadMode.MAIN) 
    public void doUiWork(UiWorkEvent event) { 
    // on main thread. do ui stuff 
    } 

    public static class BackgroundWorkEvent { 

    } 

    public static class UiWorkEvent { 

    } 

} 
+0

ですから、基本的には一種の右のイベントをネストしていますか?もう1つの質問ですが、送信者と受信者を同じアクティビティにするのが正しい実装ですか? –

+0

サンプルコードはベストプラクティスではありませんでした。私はスレッドにイベントバスを使用しません。どのようにして行うことができるのかという単純な例です。 –

関連する問題