Метод addCallback
Метод addCallback у
OnBackPressedDispatcher
ставит обработчик в стек.
Первым срабатывает последний добавленный
активный OnBackPressedCallback.
LifecycleOwner отвязывает callback
при уничтожении owner.
Логику пишут в
handleOnBackPressed.
Синтаксис
dispatcher.addCallback(owner, callback)
Параметры
| Параметр | Описание |
|---|---|
owner |
LifecycleOwner, обычно сама activity.
Управляет сроком жизни callback.
|
callback |
Объект OnBackPressedCallback
с переопределённым handleOnBackPressed.
|
Пример
Давайте добавим callback в onCreate:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.OnBackPressedCallback
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
onBackPressedDispatcher.addCallback(
this,
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
finish()
}
},
)
setContent {
Text(text = "12345")
}
}
}
На экране текст "12345", жест назад
вызовет finish через зарегистрированный callback.
Смотрите также
-
класс
OnBackPressedDispatcher,
у которого вызывают addCallback -
метод
handleOnBackPressed,
куда пишут реакцию на назад -
метод
finish,
который закрывает activity из callback -
метод
onCreate,
где удобно регистрировать callback