LiveData постит только последнее значение

167
24 октября 2018, 05:30

Подписываюсь на LiveData которая находится во ViewModel во фрагменте

Вот так получаю

@Override
public void onCreate(@Nullable final Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.offline_fragment);
    mModel = ViewModelProviders.of(this, mFactory).get(OfflineFragViewModel.class);
    observeLive();
   mModel.getData("");
}

Вот подписываюсь

private void observeLive()
{
    mModel.getLoadingStatusLive().observe(this, iLoadingStatus -> Log.e("TAG", iLoadingStatus.name()));
}

Метод getData() во ViewModel

public void getData(String i)
{
    mLoadingStatusLive.setValue(LoadingStatus.LOADING);
    Offline offline = mRepo.getActivePrnBy(i);
    if (offline.isErrorOccur())
    {
        mLoadingStatusLive.setValue(LoadingStatus.ERROR);
    }
}

В логе я получаю только ERROR

Хотя должен получить LOADING и ERROR

Если я делаю запрос данных с задержкой вот так

@Override
public void onCreate(@Nullable final Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.offline_fragment);
    mModel = ViewModelProviders.of(this, mFactory).get(OfflineFragViewModel.class);
    observeLive();
    Observable.just("").delay(1500, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).doOnNext(i -> mModel.getData("")).subscribe();
}

То все приходит как нужно

Похоже на то , как будто getData() постит все что нужно и только потом происходит подписка и естественно LiveData возвращает последний обьект который получила

Но почему это вдруг так? Если в коде явно подписываюсь я раньше , чем происходит запрос на данные...

Что делаю не так?

READ ALSO
Ошибка при клике на ListView, почему? [дубликат]

Ошибка при клике на ListView, почему? [дубликат]

На данный вопрос уже ответили:

218
Перерисовка изображения при нажатии JButton

Перерисовка изображения при нажатии JButton

Хочу, чтобы при нажатии кнопки "UP" аймэдж "gena" стирался и появлялся в новом месте - то есть x = x + 100Но при нажатии кнопки ничего не происходит

174
Не удается изменить конструктор через javaagent

Не удается изменить конструктор через javaagent

Есть javaagent со следующим ClassFileTransformer:

154
Проблема при настройке мониторинга zabbix jmx

Проблема при настройке мониторинга zabbix jmx

Необходимые порты открыты, удаленный мониторинг через jconsole с других компов доступенПроблема заключается в том, что zabbix возвращает такую...

149