Android 在kotlin对象中存储数据安全吗?
我有一个关于科特林物体的问题,到目前为止我还没有找到满意的答案。Android 在kotlin对象中存储数据安全吗?,android,object,kotlin,singleton,Android,Object,Kotlin,Singleton,我有一个关于科特林物体的问题,到目前为止我还没有找到满意的答案。 基本上是以下场景:我有一些用户数据,我想通过整个应用程序提供这些数据,而不必通过活动传递 为了实现这一点,我创建了一个具有两个属性的对象,这两个属性在启动活动中用用户的数据实例化。这是一种安全的方式来存储并使用户的数据可用于所有活动,还是会在途中丢失 例如: object CurrentUserManager { lateinit var userId: String, lateinit var userName:
基本上是以下场景:我有一些用户数据,我想通过整个应用程序提供这些数据,而不必通过活动传递 为了实现这一点,我创建了一个具有两个属性的对象,这两个属性在启动活动中用用户的数据实例化。这是一种安全的方式来存储并使用户的数据可用于所有活动,还是会在途中丢失 例如:
object CurrentUserManager {
lateinit var userId: String,
lateinit var userName: String
}
LoginActivity {
...
onCreate(...){
val user = ApiCall.Login();
CurrentUserManager.userId = user.id
CurrentUserManager.userName = user.name
}
}
MainActivity {
...
onCreate(...){
Toast.makeText(this, "Hello ${CurrentUserManager.userName} with ID: ${CurrentUserManager.userId}", Toast.LENGTH_SHORT).show()
}
}
这是不安全/不好的做法吗?如果是,为什么以及应该使用哪种模式来实现预期结果
谢谢,
lionthefox使用intent put extras或维护静态对象简短回答:只要你的Android进程没有结束,它是安全的 详细回答:这归结为关于Java中单例和静态变量的生存期的讨论。对于这个问题已经有了一些答案,所以我不再在这里重复: