我正在研究Android体系结构组件。如何使用Kotlin实现单例getInstance()方法?我使用类似Java的样式(getLocation)进行了此操作,但它不是类似kotlin的样式。
class LocationViewModel: ViewModel() {
lateinit var locationData: MyLocationListener
fun getLocation(context: Context): MyLocationListener {
locationData = MyLocationListener(context)
return locationData
}
}
最佳答案
您不应该真正使用make ViewModels单例-它们的作用域应限于创建它们的Activity / Fragment的生命周期。
如果要公开MyLocationListener实例,则可以使用AndroidViewModel类-这使您可以访问可用作Context的应用程序类。
class LocationViewModel(application: Application): AndroidViewModel(application) {
val locationData = MyLocationListener(application)
}