Android 导航 - 有没有办法清除所有 saveState 以在下次导航时强制重新加载每个屏幕?

标签 android kotlin navigation android-jetpack-compose android-jetpack-navigation

我正在使用 Jetpack Compose Navigation,并且在浏览应用程序时保存状态并调用 RestoreState,以免每次都重新加载列表。但当一个用户阻止另一个用户时,我不希望出现这种行为。阻止后,它应该在应用程序周围的每个列表中隐藏被阻止用户的所有内容。但是当它总是恢复状态时,该用户的帖子仍然包含在列表中。

我想在用户阻止另一个用户后“清除缓存”/清除所有保存的状态,这样当他导航时,每个屏幕都会再次启动 LaunchedEffect(Unit) 并获取更新的列表,而不会被阻止的用户帖子,来自后端。

如何做到这一点?

最佳答案

你可以尝试这个方法:

Clears any saved state associated with route that was previously saved via popBackStack when using a saveState value of true.

navController.clearBackStack("route_name")

您可以使用以下方法获取所有返回堆栈入口路由:

val routes = navController.backQueue.map { it.destination.route }

关于Android 导航 - 有没有办法清除所有 saveState 以在下次导航时强制重新加载每个屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74342799/

相关文章:

java - Kotlin 中类的静态对象列表

jquery - 突出显示当前页面 Wordpress 的菜单项

onclick - 如何在 Svelte 中单击时导航到不同的路径?

java - 使用socket编程将文件从android传输到pc

android - 在可序列化中使用 Json 数组

arrays - Kotlin中带有ByteArray的数据类

navigation - 如何 - 带有持久子屏幕的 Flutter Drawer

android - 在 jetpack compose 中打开键盘时屏幕部分的可见性

android - 如何找到安卓蓝牙版本?

android - 无法使用 Android Test Orchestrator 运行参数化测试