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

hfsqlsce  于 2023-01-17  发布在  Kotlin
关注(0)|答案(1)|浏览(128)

我正在使用Jetpack Compose Navigation,我保存了状态,并在浏览应用时调用restoreState,以避免每次都重新加载列表。但当一个用户屏蔽另一个用户时,我不希望出现这种行为。屏蔽后,它应该在应用周围的每个列表中隐藏被屏蔽用户的所有内容。但当它总是恢复状态时,该用户的帖子仍然包含在列表中。
我想“清除该高速缓存”/清除所有保存的状态后,用户阻止另一个,以便当他导航,每个屏幕再次启动LaunchedEffect(单位),并取得更新的列表,没有被阻止的用户的职位,从后端。
如何做到这一点?

czq61nw1

czq61nw11#

您可以尝试以下方法:
使用值为true的saveState时,清除与先前通过popBackStack保存的路由关联的所有保存状态。

navController.clearBackStack("route_name")

你可以用这个得到所有的栈入口路径:

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

相关问题