LiveData.addSource onChanged событие, не вызывающее Android

Я работаю с Android Archi + Retrofit + RxAndroid в Котлине. Мне нужно обновить свой объект Data, когда вы получите ответ от сервера. Но liveata.addSource's onChanged не звонит.

Я получаю помощь от кода Git: – https://github.com/shahbazahmed1269/AndroidGithubIssues

Вот мой код в Котлине: –

class LoginRepository : BaseRepository() { fun callLoginApi(data: HashMap<String, String>): LiveData<LoginResponse> { val liveData: MutableLiveData<LoginResponse> = MutableLiveData<LoginResponse>() // val call = mApiService.getLoginUser(data) mApiService.getLoginUser(data) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { user -> liveData.value = user Log.e("response", user.toString()) }, { error -> liveData.value = LoginResponse(error = error.localizedMessage) Log.e("Error", error.message) }) return liveData } } open class LoginViewModel : ViewModel() { lateinit var loginResponse : MediatorLiveData<LoginResponse> lateinit var loginRepo:LoginRepository; init { loginResponse = MediatorLiveData<LoginResponse>() loginRepo = LoginRepository() } fun callLoginApi(data: HashMap<String, String>) { // val loginResponse = MediatorLiveData<LoginResponse>() loginResponse.addSource( loginRepo.callLoginApi(data), { loginResponse -> Log.e("Response model",loginResponse.toString()) } ) } 

}

Мой ответ от LoginRepository печатается, но не из класса ViewModel.

Ознакомьтесь с официальными документами для addSource() MediatorLiveData , его письменного

onChanged callback будет вызван только тогда, когда активен этот MediatorLiveData.

Убедитесь, что вы loginResponse LiveData loginResponse LiveData в своем классе LifecycleOwner.