我来自MVP
模式,现在我正在使用MVVM
模式和RXJava来做一些功能,比如在地图上显示我当前的位置。为此,我正在订阅我的MV Disposable
,我会得到一个Location
:(t
是我的位置(
val subscription = locationProvider.lastKnownLocation
.subscribe(Consumer { t -> updateLocationMap(t) })
我的问题是我应该在我的View
中订阅这个Disposable
吗?因为我看到ViewModel
无法在View
中实例化,并且知道我不知道如何使用这个Location
对象。
下面是一个例子
在视图模型中创建变量
val LocationLiveData = MutableLiveData<Location>()
下面的代码应该在视图中模型
disposable = locationProvider.lastKnownLocation
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe{location ->
LocationLiveData.postValue(location)
}
之后在视图中(活动(
viewmodel.LocationLiveData.observe(this, { t: Location? ->
//use this updated location
})