2015-07-06 1 views
1

Большинство примеров, которые я видел, регистрирует услугу модификации в методе 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 Store, я не думаю, что это хорошая идея, чтобы зарегистрировать их все в Заявке. Могу ли я зарегистрировать услугу переоснащения в Управлении или фрагменте? И что будет лучшим местом для регистрации услуги?

ответ

0

Вы можете зарегистрироваться в любое время. Предпочтительно, вы можете зарегистрировать его в методе onResume() обоих, Activity и Fragment. Отто не связано с жизненными циклами активности/фрагмента. События отправляются на объект класса.

+0

Но если я сделаю это «bus.register (mStoryService)» в «onResume()», я получу сообщение о том, что служба уже зарегистрирована – arh

Смежные вопросы