Каковы различия между методами жизненного цикла onCreate() и onCreateView() в Fragment?
Я не знаю, когда использовать onCreate()
или onCreateView()
.
Я использовал методы жизненного цикла onCreate()
и onCreateView()
.
Я думаю onCreate()
для Activity и onCreateView()
для фрагмента. Но я не уверен. Могу ли я использовать метод onCreate()
LifeCycle в Fragment? Надеюсь, кто-то может мне помочь!
Ответы
Ответ 1
onCreate вызывается при первоначальном создании фрагмента. Здесь вы выполняете не графические инициализации. Он заканчивается еще до того, как макет завышен и фрагмент виден.
onCreateView вызывается для раздувания макета фрагмента. Является ли, например, графическая инициализация. Он всегда вызывается иногда после метода onCreate.
Ответ 2
Объяснение жизненного цикла операции - http://developer.android.com/reference/android/app/Activity.html
Объяснение жизненного цикла фрагмента - http://developer.android.com/guide/components/fragments.html#Creating
Подробная диаграмма жизненного цикла - https://github.com/xxv/android-lifecycle
Ответ 3
Из документов:
onCreate
Вызывается, когда начинается действие.
В этом случае нужно выполнить большую инициализацию: вызов setContentView (int) для раздувания пользовательского интерфейса активности, используя findViewById (int), чтобы программно взаимодействовать с виджетами в пользовательском интерфейсе, вызывая manageQuery (android.net.Uri, String [], String, String [], String) для извлечения курсоров для отображения данных и т.д.
Вы можете вызвать finish() из этой функции, и в этом случае onDestroy() будет немедленно вызван без какого-либо остального жизненного цикла активности (onStart(), onResume(), onPause() и т.д.).
Производные классы должны переходить к реализации суперкласса этого метода. Если они этого не сделают, будет выбрано исключение.
Ссылка на документацию onCreate
onCreateView
Вызывается, чтобы фрагмент создавал экземпляр своего пользовательского интерфейса. Это необязательно, и неграфические фрагменты могут возвращать значение null (которое является реализацией по умолчанию). Это будет вызвано между onCreate (Bundle) и onActivityCreated (Bundle).
Если вы вернете представление отсюда, позже вы будете вызваны в onDestroyView(), когда релиз будет выпущен.
Ссылка на документацию onCreateView