繁体   English   中英

我应该从哪里订阅MVVM?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM