2016-08-29 21 views

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

+0

Jak mogę nauczyć się wszystkich cech RxJava2? Zawiera tak wiele interfejsów API. Nie wiem, co warto nauczyć się przy tworzeniu aplikacji na Androida. –

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

Rx.2 Documentation