Пользовательский интерфейс остается пустым, пока Rx Java isInterval не будет сделано - PullRequest
0 голосов
/ 03 мая 2020

В настоящее время я работаю с Rx Java для опроса сервера и LiveData для хранения данных. Моя текущая проблема заключается в том, что веб-интерфейс не будет отображать ничего, пока не будет выполнен метод опроса. Когда данных с сервера много, это занимает довольно много времени. Могу ли я узнать, как я могу это исправить? Я новичок в Android и Rx Java

public void polling(int frequency) {
        Observable.interval(0, frequency, TimeUnit.MILLISECONDS)
                .map(tick -> {
                            HashMap<PatientModel, ObservationModel> poHashMap = new HashMap<>();
                            for (PatientModel patient : getAllPatients()) {
                                for (ObservationType observationType : ObservationType.values()) {                              
                                    poHashMap.put(patient, getObservation(patient.getPatientID(), observationType));
                                }
                            }
                            patientObservations.postValue(poHashMap);
                            return patientObservations;
                        }).subscribe();
    }

HomeFragment:

homeViewModel.getAllPatientObservations().observe(getViewLifecycleOwner(), new Observer<HashMap<PatientModel, ObservationModel>>() {
            @Override
            public void onChanged(HashMap<PatientModel, ObservationModel> patientObservationHashMap) {
                patientObservationHashMap.forEach((p,o) -> {
                    textView.setText(p.getName() + " " + o.getValue());
                });
            }
        });
...