155 читали · 3 года назад
Почему setContentView() надо обязательно указывать в onCreate() в активити? Почему не в onResume или в onViewCreated? Тут надо вспомнить жизненный цикл активити. Ответ кроется в том, что onCreate у активити вызывается только один раз. Именно в этом методе мы делаем большинство инициализаций. setContentView() — метод, который позволяет разместить пользовательский интерфейс на экране. И это достаточно тяжелая операция, особенно учитывая, что может быть очень сложная иерархия. Её нужно делать один раз. Если делать каждый раз в onResume, то, например, просто посмотрев уведомление в шторке, операция будет выполняться снова, что ухудшает производительность, приложение может подвиснуть, пользователь расстроится и напишет гневный отзыв. Вопросы, которые можно задать? — Какие параметры можно передать в setContentView? — Какой жизненный цикл у активити? — А есть еще какие-то методы, которые вызываются только один раз? — Как работает onCreate?
2 года назад
AndroidDev. Жизненный цикл activity
По мере того, как пользователь перемещается по вашему приложению, выходит из него и возвращается обратно, Activity экземпляры вашего приложения переходят через различные состояния в своем жизненном цикле. Класс Activity предоставляет ряд обратных вызовов, которые позволяют действию узнать, что состояние изменилось: что система создает, останавливает или возобновляет действие или уничтожает процесс, в котором находится действие. В методах обратного вызова жизненного цикла вы можете объявить, как ведет себя ваша активность, когда пользователь покидает ее и снова входит в нее...