Kotlin singleton getter in ViewModel



我正在研究Android体系结构组件。如何使用Kotlin实现Singleton GetInstance((方法?我使用类似Java的样式(GetLocation(进行了此操作,但它不像Kotlin。

class LocationViewModel: ViewModel() {
        lateinit var locationData: MyLocationListener
        fun getLocation(context: Context): MyLocationListener {
            locationData = MyLocationListener(context)
            return locationData
        }
    }

您不应该真正使用make viewModels singleton-应该将它们范围范围用于创建的活动/片段的生命周期。

如果要公开MyLocationListener实例,则可以使用AndroidViewModel类 - 这使您可以访问可以用作上下文的应用程序类。

class LocationViewModel(application: Application): AndroidViewModel(application) {
    val locationData = MyLocationListener(application)
}

最新更新