存储库仅在第二次调用时将数据发送回ViewModel

时间:2018-10-20 13:20:37

标签: android mvvm kotlin android-architecture-components android-livedata

根据本教程:https://developer.android.com/jetpack/docs/guide?fbclid=IwAR2vtdeMmmnq6h-zcwTuLLLZcRdhr_pSPr7vT7ZebEL3K3EyR-CobCU07Q0#overview我尝试不使用离线数据库或高速缓存来实现存储库模式。 ViewModel中的Fragment观察器livedata和ViewModel从Repo中获取数据。

问题:

“我的片段”仅在第二次调用时才获取数据(例如,当我旋转屏幕时)。

我认为这些代码行是repo类中的问题:

public class UserRepository {
private Webservice webservice;
// ...
public LiveData<User> getUser(int userId) {
    // This isn't an optimal implementation. We'll fix it later.
    final MutableLiveData<User> data = new MutableLiveData<>();
    webservice.getUser(userId).enqueue(new Callback<User>() {
        @Override
        public void onResponse(Call<User> call, Response<User> response) {
            data.setValue(response.body());
        }

        // Error case is left out for brevity.
    });
    return data;
}

}

有没有办法以存储库模式(没有离线持久性)获取第一次调用时的数据?

0 个答案:

没有答案