Где FragmentActivity#onDetachFragment?

Каждый раз, когда я прикрепляю фрагмент к своей активности, я хочу зарегистрировать его для получения событий от активности. Это легко, потому что я могу переопределить FragmentActivity#onAttachFragment(Fragment). Когда фрагмент удаляется из активности, я хочу отменить его регистрацию для получения событий. Я ожидал, что будет событие onDetachFragment, которое я мог бы использовать аналогичным образом, но я его не нашел.

Есть ли другой способ выполнить то, что я пытаюсь сделать? Я хотел бы сохранить регистрацию/отмену регистрации в действии, а не перемещать его в базовый класс фрагментов (где я мог бы просто использовать onAttach/onDetach).


person Edward Dale    schedule 28.09.2012    source источник
comment
лучше использовать метод onStart(), onStop() из вашего фрагмента. Просто приведите getActivity() к вашему классу вызывающей активности.   -  person Anis BEN NSIR    schedule 28.09.2012
comment
@Anis Похоже, это единственный доступный способ. Если вы сделаете свой комментарий ответом, я приму его.   -  person Edward Dale    schedule 02.11.2012
comment
Прошу прощения за следующие разглагольствования, но я просто хочу добавить, что сегодня, в июле 2018 года, я случайно столкнулся с тривиальной проблемой, которую я мог бы решить с помощью одной строки, если бы onDetachFragment был доступен. Вместо этого мне нужно написать, протестировать и отладить несколько запутанных строк шаблонного кода.   -  person sigsegv    schedule 25.07.2018


Ответы (1)


лучше использовать метод onStart(), onStop() из вашего фрагмента. Просто приведите getActivity() к вашему классу вызывающей активности.

person Anis BEN NSIR    schedule 02.11.2012
comment
Объясните, пожалуйста, почему так лучше? - person Laimiux; 13.09.2016
comment
это лучше, потому что на этом этапе фрагмент привязан к своей родительской активности. - person Anis BEN NSIR; 15.09.2016
comment
Не лучше ли было бы, чтобы родитель настраивал слушателей на фрагмент, а не фрагмент, захвативший слушателей у родителя? - person Laimiux; 16.09.2016
comment
Или... приведите его к ожидаемому типу прослушивателя фрагмента (при условии, что прикрепленный контекст/активность проходит проверку instanceof), и ваш фрагмент не должен ничего знать о вашей активности. Методы onAttach/onDetach вашего фрагмента были бы отличным местом для этого. - person droid256; 18.12.2017