【发布时间】:2019-05-08 10:21:30
【问题描述】:
我有一个关于 kotlin 中的对象的问题,到目前为止我找不到令人满意的答案。 基本上是以下场景:我有一些用户数据,我想通过整个应用程序提供这些数据,而不必通过活动传递。
为了实现这一点,我创建了一个具有两个属性的对象,这些属性在启动活动中使用用户数据进行实例化。这是一种安全的方式来存储用户数据并使用户的数据可用于所有活动,还是会在途中丢失?
例子:
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()
}
}
这是不安全/不好的做法吗?如果是,为什么以及我应该使用哪种模式来实现预期结果?
谢谢, 狮狐
【问题讨论】:
标签: android object kotlin singleton