【发布时间】:2021-08-29 20:35:18
【问题描述】:
我有一个屏幕,每当它为第一个组成时,它都会添加一个onBackPressedCallback,如下代码:
val activity = LocalContext.current.getActivity()
val dispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
val backCallback = remember {
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
activity?.finish()
}
}
}
DisposableEffect(dispatcher) { // dispose/relaunch if dispatcher changes
dispatcher?.addCallback(backCallback)
onDispose {
backCallback.remove() // avoid leaks!
}
}
除非您将应用程序置于后台并重新启动,否则它会正常工作。那么第一次按回不行,整个画面会被重构,而这次重构会添加回调,第二次按回调就可以了。
为什么当您将应用程序置于后台并返回时,第一次按返回按钮时它不起作用?
【问题讨论】:
标签: android android-jetpack-compose onbackpressed