Общий экземпляр шины событий

Я зарегистрировал шину событий в одном действии, например - EventBus.getDefault.register(this);

Но теперь я хочу отменить регистрацию в другом действии. Как этого добиться?


person sanil    schedule 06.04.2017    source источник
comment
Возможный дубликат Необходима ли отмена регистрации шины событий   -  person Kewin Dousse    schedule 06.04.2017
comment
Вы можете отменить регистрацию того же зарегистрированного действия в другом действии, если у вас есть ссылка на зарегистрированное действие. Но рекомендуется отменить регистрацию активности в состоянии onPause. в противном случае это приведет к утечке памяти.   -  person Krish    schedule 06.04.2017
comment
@Krish, не могли бы вы привести мне короткий пример?   -  person sanil    schedule 06.04.2017
comment
опубликуйте код, где вы хотите отменить регистрацию.   -  person Krish    schedule 06.04.2017


Ответы (1)


Но теперь я хочу отменить регистрацию в другом действии.

Вы не можете отменить регистрацию другого действия, поскольку оно не зарегистрировано. Вы должны отменить регистрацию того же объекта, который вы зарегистрировали. Обычно onResume()/onPause() являются хорошим местом для решения этой проблемы.

person Marcin Orlowski    schedule 06.04.2017
comment
но когда я удаляю свое приложение из фона, что мне делать, чтобы отменить регистрацию шины событий этого соответствующего действия, поскольку я регистрирую его в onStart() и отменяю регистрацию в методе onDestroy()? - person sanil; 06.04.2017
comment
это звучит как плохой дизайн. что вам нужно, чтобы ваша активность была зарегистрирована, когда она находится в фоновом режиме?! Пользователь может никогда не вернуться к нему, поэтому в этом нет смысла. - person Marcin Orlowski; 06.04.2017
comment
Нет, я создал один метод подписчика в активности запуска, который мне нужно вызывать в других действиях путем публикации событий, поэтому я отменяю регистрацию шины событий в onDestroy() вместо OnPause(). Но когда приложение удаляется из фона, то как я отменяю регистрацию этой шины событий? - person sanil; 06.04.2017
comment
@sanil Вам не нужно отменять регистрацию активности, если пользователь убивает приложения. Не рекомендуется отменять регистрацию в onDestroy. - person Krish; 06.04.2017