Я хочу получить более 3-х ответов от сервера, использующего модернизацию одновременно. но только 2 запроса будут иметь ответ.
Я использую Retrofit и Rxjava.
Также я использовал метод .clone () для дублирования запроса.
Нажмите (https://futurestud.io/tutorials/retrofit-2-reuse-and-analyze-requests-2)!
Это ResponseActivity:
public class ResponseActivity extends AppCompatActivity {
private ResponseViewModel mViewModel;
private static final String TAG = "MainActivity";
private ProgressBar progressBar;
protected CompositeDisposable compositeDisposable = new CompositeDisposable();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.response_main);
mViewModel = new ResponseViewModel();
progressBar = findViewById(R.id.pb_response);
}
@Override
protected void onResume() {
super.onResume();
mViewModel.getText()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new MySingleObserver<Text>(compositeDisposable) {
@Override
public void onSuccess(Text value) {
Log.i(TAG, "onSuccess: " + value.getText());
}
});
mViewModel.getText()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new MySingleObserver<Text>(compositeDisposable) {
@Override
public void onSuccess(Text value) {
Log.i(TAG, "onSuccess: " + value.getText());
}
});
mViewModel.getText()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new MySingleObserver<Text>(compositeDisposable) {
@Override
public void onSuccess(Text value) {
Log.i(TAG, "onSuccess: " + value.getText());
}
});
}
@Override
protected void onPause() {
super.onPause();
compositeDisposable.clear();
}
}
А это моя ViewModel
public class ResponseViewModel extends ViewModel {
private static final String TAG = "MainActivity";
public Single<Text> getText() {
Single<Text> call= apiService.getText();
return call;
}
}
Я только что получил ответ 2 из 3. иногда я получил больше, чем 2.
Я не знаю, почему это происходит.