Я использую Jetpack Compose с NavController для управления навигацией в моем приложении. У меня есть экран, на котором я хочу немедленно очистить экран, когда выбранный элемент становится нулевым, или ограничить навигацию или всплывать, когда пользователь возвращается на экран после низкого нехватки памяти/смерти процесса > Также выбранный элемент будет нулевым, потому что его viewmdoel воссоздается из-за смерти процесса, но я вижу, что навигация все еще находится в стеке, и я не хочу перемещаться по этому экрану. Как с этим справиться?
И код ниже является гарантией?
@Composable
fun DetailedServiceScreen(
navController: NavController,
viewModel: ServicesViewModel
) {
val selectedItem by viewModel.selectedItem.collectAsState()
// Use DisposableEffect to handle disposal and backstack pop
DisposableEffect(Unit) {
onDispose {
if (selectedItem == null) {
// Pop the backstack if selectedItem is null
navController.popBackStack()
Log.e(TAG, "Disposed and popped back stack")
}
Log.e(TAG, "Dispose called")
}
}
// Your composable content here
if (selectedItem != null) {
// Display detailed content if item is selected
DetailedServiceContent(selectedItem = selectedItem)
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... cess-death
Управление выбранным элементом Навигация по экрану Вкл. Не сохранять действия (смерть процесса) Включено ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение