我见过的大多数示例都在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中有多个服务会发生什么,我认为在应用程序中注册所有服务并不是一个好主意。我可以在活动或片段中注册改装服务吗?什么是注册服务的最佳地点?
答案 0 :(得分:0)
您可以随时注册。您最好使用onResume()
和Activity
的{{1}}方法进行注册。 Otto与活动/片段生命周期无关。事件是在类对象上发送的。