簡體   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