Как создать намерение из onComplete наблюдателя в Android?

#android #rx-android

#Android #rx-android

Вопрос:

Я пытаюсь перенаправить на два разных действия в зависимости от некоторой логики ответа. Но каждый раз, когда я запрашиваю, я получаю фатальное исключение:

java.lang.Исключение IllegalStateException: фатальное исключение, генерируемое в планировщике.

Мой код:

 this.responseConnectionObservable = apiService.getConnections(token);
            this.responseConnectionObservable.subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Observer<ConnectionsResponse>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(ConnectionsResponse connectionsResponse) {

                    if (connectionsResponse.getSuccess()) {
                        Log.d("body", "post submitted to API.");

                        connectionsResponseParent = connectionsResponse;
                        store.put("token", connectionsResponse.getSecurityResponse().getToken());

                    }
                }


                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                        if (!connectionsResponseParent.getPayload().getPersonList().isEmpty() || !connectionsResponseParent.getPayload().getCompanyList().isEmpty()) {

                            for (PartyListResponse party : connectionsResponseParent.getPayload().getPersonList()) {
                                accounts.add(new Account(party.getId(), party.getUrl(), party.getName(), party.getShareType()));
                            }

                            for (PartyListResponse party : connectionsResponseParent.getPayload().getCompanyList()) {
                                accounts.add(new Account(party.getId(), party.getUrl(), party.getName(), party.getShareType()));
                            }

                            Intent intent = new Intent(getApplicationContext(), SwitchAccountActivity.class);
                            intent.putExtra("mDataSet", accounts);
                            startActivity(intent);
                            finish();

                            } else {

                            Intent intent = new Intent(getApplicationContext(), CreateEntityActivity.class);
                            startActivity(intent);
                            finish();

                            }


                }

                });
  

Что я делаю не так? Я новичок в RX и не знаю, как переключаться между потоками, если это так.

Ответ №1:

ну, немного сложно определить, что не так, поскольку это исключение выдается, когда запрос выполняется в неподходящем состоянии. расскажите об этом подробнее

Комментарии:

1. что еще вы хотите знать??