Otto和Retrofit - 注册改造服务

时间:2015-07-06 22:19:01

标签: retrofit otto

我见过的大多数示例都在Application的oncreate方法中注册了改装服务。

像这样的东西。

class ReaderApplication extends Application {

  private StoryService mStoryService;
  private Bus mBus = BusProvider.getInstance();

  @Override
  public void onCreate() {
  super.onCreate();

  mStoryService = new StoryService(buildApi(), mBus);
  bus.register(mStoryService);

  bus.register(this); //listen for "global" events
  }

 private StoryApi buildApi() {
  return new RestAdapter.Builder()
              .setServer(API_URL)
              .build()
              .create(StoryApi.class);
  }

  @Subscribe
  public void onApiError(ApiErrorEvent event) {
   toast("Something went wrong, please try again.");
   Log.e("ReaderApp", event.getErrorMessage());
  }
}

如果我在App中有多个服务会发生什么,我认为在应用程序中注册所有服务并不是一个好主意。我可以在活动或片段中注册改装服务吗?什么是注册服务的最佳地点?

1 个答案:

答案 0 :(得分:0)

您可以随时注册。您最好使用onResume()Activity的{​​{1}}方法进行注册。 Otto与活动/片段生命周期无关。事件是在类对象上发送的。