Ich bin neu in der Verwendung von RxJava und ich habe Fragen dazu, wie kann ich meinen neuen Callback von Retrofit auf RxJava ändern?RxJava statt Retrofit Callback
Mein Arbeits Code ist hier:
Service service = new Retrofit.Builder()
.baseUrl("lalala")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(Service.class);
Und danach schreibe ich
Call<Board> call = service.getBoard("lalala");
call.enqueue(new Callback<Board>() {
@Override
public void onResponse(Call<Board> call, Response<Board> response) {
if (response.isSuccessful()) {
recyclerView.setAdapter(new BoardAdapter(MainActivity.this, response.body().getThreads()));
}
}
@Override
public void onFailure(Call<Board> call, Throwable t) {
Toast.makeText(MainActivity.this, "error :(", Toast.LENGTH_SHORT).show();
}
});*/
Aber wenn ich es auf RxJava verwenden möchten, ich verstehe nicht, wie es zu tun. Ich habe es versucht.
service.getRxBoard(boardq)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Board>() {
@Override
public void accept(Board board) throws Exception {
recyclerView.setAdapter(new BoardAdapter(MainActivity.this, board.getThreads()));
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
Toast.makeText(MainActivity.this, "error :(", Toast.LENGTH_SHORT).show();
}
});
Und es funktioniert nicht. Ich erhalte eine Ausnahme:
java.lang.RuntimeException: Unable to start activity ComponentInfo
Unable to create call adapter for io.reactivex.Observable