0

非同期 HTTP 要求から受信したオブジェクトのビューを使用してアクティビティを取得しました。EventBus を使用して、オブジェクトとアクティビティで次のメソッドを使用してイベントを投稿しています。

public void onEventMainThread(MyObjectEvent event) {
    EventBus.getDefault().unregister(this);
    showMyObject(event.getMyObject());
}

以前、アクティビティのインスタンスを onCreate() メソッドに登録しました。

EventBus.getDefault().register(this);

私は Android の Activity ライフサイクルを認識しており、Android によって破棄される可能性のあるインスタンスを登録しているため、EventBus の使用方法が正しくないと思います。私はそのような振る舞いをするインスタンスを登録することに熱心ではありません。

すべての onEvent() メソッドに Application インスタンスまたはオブジェクトを登録できますが、God オブジェクトをコーディングすることになります。

getStickyEvent(MyObjectEvent) がnullであることを確認してからアクティビティを登録することで、スティッキーイベントを使用するソリューションになりますか? null でない場合は、アクティビティを登録します。

Android のビューで EventBus を使用する最善の方法を知りたいです。前もって感謝します ;)

4

1 に答える 1

6

onCreate に登録した場合は、onDestroy での登録解除を検討してください。

また、利用可能な場合はすぐにイベントを配信する registerSticky もご覧ください。

于 2014-03-05T11:43:01.620 に答える