Жизненный цикл фрагмента относительно его активности

Ситуация Моя активность ожидает выполнения асинхронной операции, и после получения ответа от асинхронной операции ей необходимо передать информацию двум фрагментам внутри нее.

Требование 1. Оба фрагмента должны выполнять свои onCreateView вызовы для загрузки своих макетов, 2. Они должны быть привязаны к своей активности, чтобы getActivity() работало.

Я написал метод setData() в обоих фрагментах и ​​ищу «правильное» место в жизненном цикле активности для их вызова.

onCreate() действия не работает, onStart() действия не работает и onStart() фрагмента не работает.

Ничего не работает, что мне здесь не хватает?


person Vikram Bodicherla    schedule 21.09.2011    source источник


Ответы (5)


Официальная документация по жизненному циклу фрагмента ясно объясняет это — см. к нему, а затем задать дополнительные вопросы, если что-то неясно.

person Vineet Shukla    schedule 21.09.2011
comment
Спасибо, я не знаю, как я пропустил это. - person Vikram Bodicherla; 27.09.2011
comment
У меня есть Activity1 --- › Fragment1 --- › (вложенный) фрагмент 2 ‹ === › Activity2, когда я нахожусь в Activity2, когда я нажимаю кнопку «Назад» фрагмент 2 (Activity1) в то время, когда мне нужно знать, какой метод запущен в фрагмент2? Я просто хочу обновить содержимое фрагмента2, когда пользователь нажимает кнопку «Назад» в Activity2! - person LOG_TAG; 27.11.2013
comment
@LOG_TAG: onResume будет запущен. - person Mehul Joisar; 02.12.2013

Это изображение будет полезно для понимания обоих жизненных циклов вместе.

Поскольку многие люди жалуются, и это в некоторой степени обоснованный аргумент, что этот жизненный цикл слишком сложен, в Google I/O 2018 они предложили использовать архитектурный компонент Framework. Ознакомьтесь с этой документами.

введите описание изображения здесь

person TapanHP    schedule 09.11.2016
comment
зачем, гугл, только зачем? Вот почему никто не любит фрагменты :D - person cuddlecheek; 22.05.2017

когда вы находитесь в Activity2---->backpress--->Fragment2(Activity1) --- означает, что Activity1 снова подключается из fragment2, поэтому OnAactivityCreated() метод Activity1 полностью загружен .... так что мы можем вызвать setData() метод вашего Activity1...

person Community    schedule 27.08.2014

onAttachFragment()-активность вызывается до onCreate()-активности и после onAttach()-фрагмента

person David A    schedule 05.06.2019

Вызовите onDestroy onStop вашего фрагмента. Это должно вызывать onCreate при запуске фрагмента. Дайте мне знать, если работает как идеальное решение для вашей проблемы.

person BTR Naidu    schedule 10.12.2012
comment
onDestroy и onStop не должны вызываться. Это функции обратного вызова в жизненном цикле действий и фрагментов. - person Vikram Bodicherla; 19.02.2014