package nisrulz.github.sample.usingrxjava2; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import io.reactivex.Observable; import io.reactivex.ObservableEmitter; import io.reactivex.ObservableOnSubscribe; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import java.util.concurrent.TimeUnit; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; Observable<?> observable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Basic Example basicRxJava2Example(); // Creating Observable using just Log.i(TAG, "Creating Observable using just"); observable = Observable.just("Hello World"); commonRxJava2Example(observable); // Creating Observable using range Log.i(TAG, "Creating Observable using range"); observable = Observable.range(0, 5); commonRxJava2Example(observable); // Creating Observable using from Log.i(TAG, "Creating Observable using fromArray"); observable = Observable.fromArray(new String[] { "H", "e", "l", "l", "o" }); commonRxJava2Example(observable); // Creating Observable using interval Log.i(TAG, "Creating Observable using interval"); observable = Observable.interval(2, TimeUnit.SECONDS); commonRxJava2Example(observable); } void commonRxJava2Example(Observable<?> observable) { // 2. Create an Observer Observer<Object> observer = new Observer<Object>() { @Override public void onSubscribe(Disposable d) { Log.i(TAG, "onSubscribe: "); } @Override public void onNext(Object value) { Log.i(TAG, "onNext: " + value); } @Override public void onError(Throwable e) { Log.i(TAG, "onError: "); } @Override public void onComplete() { Log.i(TAG, "onComplete: All Done!"); } }; //3. Create our subscription i.e Subscribe Observable to Observer observable.subscribe(observer); } void basicRxJava2Example() { // 1. Create an Observable Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> e) throws Exception { //Use onNext to emit each item in the stream// e.onNext(1); e.onNext(2); e.onNext(3); e.onNext(4); //Once the Observable has emitted all items in the sequence, call onComplete// e.onComplete(); } }); // 2. Create an Observer Observer<Integer> observer = new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { Log.i(TAG, "onSubscribe: "); } @Override public void onNext(Integer value) { Log.i(TAG, "onNext: " + value); } @Override public void onError(Throwable e) { Log.i(TAG, "onError: "); } @Override public void onComplete() { Log.i(TAG, "onComplete: All Done!"); } }; //3. Create our subscription i.e Subscribe Observable to Observer observable.subscribe(observer); } }