0

我正在研究 Google 的新Android Architecture Component AAC

我的问题

类内的方法ViewModel被多次调用,导致错误

1 getLoggedInUser() 被多次调用

2在改造的 onNext() 或 onError() 之前,onChanged()被调用

我的活动

LoginPojo loginPojo=new LoginPojo();
            loginPojo.setEmailId(viewFunctions.getText(etLoginEmailId));
            loginPojo.setPassword(viewFunctions.getText(etLoginPwd));
            viewModel.loginUser(loginPojo);

            viewModel.getLoggedInUser().observe(this, new Observer<LoginPojo>() {
        @Override
        public void onChanged(@Nullable LoginPojo pojo) {
            viewFunctions.hideCustomProgress();
            if (pojo.isError()) {

                if (pojo.isNetworkError()) {

                } else {

                }


            } else {

                if (pojo.getStatus().equalsIgnoreCase(constants.ERROR)) {

                } else {

                }
            }
        }
    });

视图模型

private MutableLiveData<LoginPojo> mutableLogin = new MutableLiveData<>();

    public final LiveData<LoginPojo> loginData = Transformations.switchMap(mutableLogin, new Function<LoginPojo, LiveData<LoginPojo>>() {
        @Override
        public LiveData<LoginPojo> apply(LoginPojo input) {
            return repository.loginUser(input.getEmailId(), input.getPassword());
        }
    });


public void loginUser(LoginPojo loginPojo) {

         mutableLogin.setValue(loginPojo);

    }


    public LiveData<LoginPojo> getLoggedInUser() {

        return loginData;
    }
4

0 回答 0