Pojawia się nowy płynny w RxJava2. Jak korzystać z tego w Androidzie. W RxJava1 nie było Flowable.Jak korzystać z funkcji Flowable w aplikacji RxJava 2?
7
A
Odpowiedz
8
public class FlowableExampleActivity extends AppCompatActivity {
private static final String TAG = FlowableExampleActivity.class.getSimpleName();
Button btn;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
btn = (Button) findViewById(R.id.btn);
textView = (TextView) findViewById(R.id.textView);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
doSomeWork();
}
});
}
/*
* simple example using Flowable
*/
private void doSomeWork() {
Flowable<Integer> observable = Flowable.just(1, 2, 3, 4);
observable.reduce(50, new BiFunction<Integer, Integer, Integer>() {
@Override
public Integer apply(Integer t1, Integer t2) {
return t1 + t2;
}
}).subscribe(getObserver());
}
private SingleObserver<Integer> getObserver() {
return new SingleObserver<Integer>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG, " onSubscribe : " + d.isDisposed());
}
@Override
public void onSuccess(Integer value) {
Log.d(TAG, " onSuccess : value : " + value);
}
@Override
public void onError(Throwable e) {
Log.d(TAG, " onError : " + e.getMessage());
}
};
}
}
Mam utworzyć przykładowy projekt, aby zademonstrować użycie RxJava2. Tutaj można znaleźć sample project - RxJava2-Android-Samples
1
To jest to, co jest napisane w dokumentacji
Praktycznie fromEmitter 1.x (dawniej fromAsync) został przemianowany do Flowable.create. Inne bazowe typy reaktywne mają podobne metody tworzenia (bez strategii przeciwciśnienia).
Więc można to wykorzystać w taki sam sposób jak fromEmitter
i fromAsync
Jak mogę nauczyć się wszystkich cech RxJava2? Zawiera tak wiele interfejsów API. Nie wiem, co warto nauczyć się przy tworzeniu aplikacji na Androida. –