首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记住{ mutableStateOf()}中的值可以在我完成应用程序后保存吗?

记住{ mutableStateOf()}中的值可以在我完成应用程序后保存吗?
EN

Stack Overflow用户
提问于 2022-11-23 10:23:43
回答 1查看 32关注 0票数 1

我正在开发Jetpack登录的导航流程。那我就不明白它的功能了。

代码语言:javascript
复制
@Composable
fun CheckSignedIn(vm: AuthViewModel,navController: NavController){
    val alreadyLoggedIn = remember { mutableStateOf(false)}
    val signedIn = vm.signedIn.value
    if(signedIn && !alreadyLoggedIn.value){
        alreadyLoggedIn.value = true
        navController.navigate(DestinationScreen.Feed.route){
            popUpTo(0)
        }
    }
}
代码语言:javascript
复制
class AuthViewModel @Inject constructor(
    val auth: FirebaseAuth
): ViewModel() {

    val signedIn = mutableStateOf(false)
   
    init {
        signedIn.value = currentUser != null
    }
代码语言:javascript
复制
@Composable
fun SignupScreen(navController: NavController,vm:AuthViewModel){

    CheckSignedIn(vm = vm, navController = navController)

}

(我不写没有关系的东西)

当SignupScreen的构图被调用时,CheckSignedIn也被调用。在CheckSignedIn中,我不知道remember { mutableStateOf(false)}的值是如何注册和工作的。我的问题是,如果我完成了这个应用程序,还记得它的价值是否还在注册吗?

每次调用SignupScreen,CheckSignedIn的所有内容都会从一开始就开始吗?

请告诉我如何在全流程中前进。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 10:31:45

remember帮助我们在应用程序运行时或后台保存任何状态,所以当您完成应用程序并再次启动它时,一切都将从零开始,所以当您重新启动应用程序时,alreadyLoggedIn状态将返回到false

要保存状态,即使在关闭应用程序之后,您也需要查看数据存储:

文档:https://developer.android.com/topic/libraries/architecture/datastore

播放列表:https://youtube.com/playlist?list=PLWz5rJ2EKKc8to3Ere-ePuco69yBUmQ9C

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74545244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档