MVVM 我应该从哪里订阅 Rx



我来自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
  }) 

相关内容

  • 没有找到相关文章

最新更新