Какие методы жизненного цикла фрагментов Android требуют супер
в настоящее время (Android API 17), единственное упоминание super
В Android ссылка на фрагмент случайно через некоторые примеры кода (в отличие от Android ссылка на деятельность, который тщательно отмечает, где super
требуется).
так говорит поиск в интернете при необходимости или в ожидании сбоя, чтобы определить, где вызов Это. Я прошу пользователей поделиться своими знаниями о том, какой из фрагментов методы жизненного цикла требуют вызова super
.
методы жизненного цикла фрагментов-требуется вызов super
onAttach()
-
onCreate()
- вероятно, да, какActivity
версия требует -
onCreateView()
- кажется хорошо с или без onActivityCreated()
onViewStateRestored()
-
onStart()
- вероятно, да, какActivity
версия требует onResume()
- вероятно, да, какActivity
версия требует этогоonPause()
- вероятно, да, какActivity
версия требует-
onStop()
- вероятно, да, какActivity
версия требует onDestroyView()
-
onDestroy()
- вероятно, да, какActivity
версия требует onDetach()
onSaveInstanceState()
- вероятно, да, какActivity
версия требует
3 ответов
все соответствующие методы жизненного цикла Activity, кроме onSaveInstanceState
требуется вызов super. Кроме того:
-
onAttach()
- да -
onActivityCreated()
- да -
onViewStateRestored()
- это не метод фрагмент -
onDestroyView()
- да -
onDetach()
- да -
onSaveInstanceState()
С фрагмент#данные метода onsaveinstance это похоже нет
все методы, требующие вызовов super поделитесь первой строкой своего метода в android.приложение.Фрагмент:
mCalled = true;
таким образом, FragmentManager может проверить, является ли mCalled true и бросить SuperNotCalledException, когда он не вызывается. См.FragmentManager#moveToState чтобы увидеть эту реализацию.
при генерации фрагмента с Eclipse код шаблона метода onCreateView не имеет вызова super.onCreateView. Кроме того, в целом неплохая книга, опубликованная WROX: Android 4 Application Development пропускает ее в своем образце жизненного кода (он не пропускает никаких других вызовов super).
конечно, оба этих источника могут быть неправильными, но с использованием шаблона Eclipse и не добавлением super.onCreateView не вызвал у меня проблемы.
я печатаю с заглавной буквы " O "вместо маленькой буквы "o"
означает: OnCreate вместо методов onCreate.
Это глупая ошибка, но нужно помнить:)
спасибо