Как определить состояние android liveData?

Во-первых, я новичок в LiveData. Я нашел это на официальном сайте Android.

An exception to this behavior is that observers also receive an update when they change from an inactive to an active state. Furthermore, if the observer changes from inactive to active a second time, it only receives an update if the value has changed since the last time it became active.

Я хочу знать, как определить состояние.

   public void doLogin(View view){
        final LiveData<Pojo> liveData = loginViewModel.checkLoginAndgetUserData(email.getText().toString(),password.getText().toString());
        liveData.observe(LoginActivity.this, new Observer<Pojo>() {
            @Override
            public void onChanged(@Nullable Pojo pojo) {
                    Boolean isValid = loginViewModel.isValid(pojo);
                    if (isValid){
                        Toast.makeText(LoginActivity.this, "Success", Toast.LENGTH_SHORT).show();
                    }else {
                        Toast.makeText(LoginActivity.this, "Failed", Toast.LENGTH_SHORT).show();
                    }

            }
        });

    }

Вот мой код. Если пользователи в первый раз не смогли войти в систему и попытаются войти снова, в этот раз вызов метода onChanged без изменения данных. В этот раз тост появляется снова. Через некоторое время Когда сетевой вызов завершится, снова onChanged вызов метода.

LiveData становится неактивным, если у него нет активных наблюдателей. Это означает, что если LifecycleOwner становится stopped, то он отображается как inactive. Таким образом, приложение, переведенное в фоновый режим, делает наблюдателей неактивными.

EpicPandaForce 24.02.2019 15:53

Было озеро моих знаний о живых данных. Теперь я ясно, чем раньше. Спасибо.

Sunny Sultan 24.02.2019 20:25
0
2
633
0

Другие вопросы по теме