[英]MVVM from where I should subscribe with Rx?
我来自MVP
模式,现在我使用MVVM
模式和RXJava来完成某些功能,例如在地图上显示当前位置。 为此,我在MV中订阅了Disposable
,我将获得一个Location
:( t
是我的位置)
val subscription = locationProvider.lastKnownLocation
.subscribe(Consumer { t -> updateLocationMap(t) })
我的问题是我应该同意这个Disposable
在我View
? 因为我看到无法在View
实例化ViewModel
,并且知道我不知道如何使用此Location
对象。
这是一个例子
在Viewmodel中创建一个变量
val LocationLiveData = MutableLiveData<Location>()
下面的代码应该在viewmodel中
disposable = locationProvider.lastKnownLocation
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe{location ->
LocationLiveData.postValue(location)
}
之后,在View(Activity)中
viewmodel.LocationLiveData.observe(this, { t: Location? ->
//use this updated location
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.