Junior
Кои методи на жизнения цикъл на Activity знаете и как се изпълняват?
sobes.tech AI
Отговор от AI
onCreate(): Извиква се при първото създаване на Activity. Използва се за инициализация на потребителския интерфейс и данни.onStart(): Activity става видима за потребителя.onResume(): Activity става активна и е на преден план. Потребителят може да взаимодейства с нея.onPause(): Извиква се, когато Activity преминава на заден план или друга Activity частично я закрива. Използва се за запазване на състоянието, което трябва бързо да се възстанови.onStop(): Activity вече не е видима за потребителя. Използва се за освобождаване на неиспользвани ресурси.onDestroy(): Извиква се преди Activity да бъде унищожена. Използва се за окончателно почистване на ресурсите.onRestart(): Извиква се следonStop(), когато Activity отново стане видима.
Последователността на изпълнение на методите при стартиране: onCreate() -> onStart() -> onResume().
Последователността при преминаване на заден план (например при натискане на бутона Home): onPause() -> onStop().
Последователността при връщане от заден план: onRestart() -> onStart() -> onResume().
Последователността при унищожаване на Activity: onPause() -> onStop() -> onDestroy().
При завъртане на екрана Activity се унищожава и създава наново. Последователност: onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). За запазване на състоянието се използва onSaveInstanceState() (извиква се преди onStop()) и възстановяване в onCreate() или onRestoreInstanceState() (извиква се след onStart()).
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) // Инициализация на UI
// Възстановяване на състоянието от savedInstanceState
}
override fun onStart() {
super.onStart()
// Activity става видима
}
override fun onResume() {
super.onResume()
// Activity е на преден план, достъпна за взаимодействие
}
override fun onPause() {
super.onPause()
// Activity преминава на заден план
// Запазване на бързо възстановяемо състояние
}
override fun onStop() {
super.onStop()
// Activity не е видима
// Освобождаване на ресурси
}
override fun onDestroy() {
super.onDestroy()
// Activity се унищожава
// Окончателно почистване на ресурси
}
override fun onRestart() {
super.onRestart()
// Activity се връща от заден план
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// Запазване на състоянието преди унищожаване
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
// Възстановяване на състоянието
}
}