Skip to content

Instantly share code, notes, and snippets.

@knappador
Last active August 29, 2015 14:22
Show Gist options
  • Save knappador/b8c1a9d0290a8c37ce8f to your computer and use it in GitHub Desktop.
Save knappador/b8c1a9d0290a8c37ce8f to your computer and use it in GitHub Desktop.
How It Paralleled It
Log.i("BackgroundRealmActivity", "MainThread Id: " + Thread.currentThread().getId());
PublishSubject<Integer> intSubject = PublishSubject.create();
Observable<Integer> ints = intSubject.asObservable();
intSubject.subscribe((Integer i) -> {
Log.i("BackgroundRealmActivity emitted", Integer.toString(i));
});
ints.flatMap((Integer i) -> {
return Observable.defer(() -> {
Log.i("BackgroundRealmActivity", "Integer: " + Integer.toString(i));
Log.i("BackgroundRealmActivity", "Thread: " + Thread.currentThread().getId());
// make it "look" like I/O
try {
Thread.sleep(30);
} catch (Exception e) {
e.printStackTrace();
}
return Observable.just(i).subscribeOn(AndroidSchedulers.mainThread());
}).subscribeOn(Schedulers.io());
}).subscribe((Integer i) -> {
Log.i("BackgroundRealmActivity", "Back on MainThread Id: " + Thread.currentThread().getId());
((TextView) findViewById(R.id.test_result)).setText(TEST_COMPLETE);
});
for(int i = 0; i < 9; i++) {
intSubject.onNext(i);
}
/*
Output:
I/BackgroundRealmActivity(24029): MainThread Id: 1
I/BackgroundRealmActivity emitted(24029): 0
I/BackgroundRealmActivity emitted(24029): 1
I/BackgroundRealmActivity emitted(24029): 2
I/BackgroundRealmActivity emitted(24029): 3
I/BackgroundRealmActivity emitted(24029): 4
I/BackgroundRealmActivity emitted(24029): 5
I/BackgroundRealmActivity emitted(24029): 6
I/BackgroundRealmActivity emitted(24029): 7
I/BackgroundRealmActivity emitted(24029): 8
I/BackgroundRealmActivity(24029): Integer: 0
I/BackgroundRealmActivity(24029): Thread: 85939
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Integer: 1
I/BackgroundRealmActivity(24029): Thread: 85940
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Integer: 3
I/BackgroundRealmActivity(24029): Thread: 85942
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Integer: 2
I/BackgroundRealmActivity(24029): Thread: 85941
I/BackgroundRealmActivity(24029): Integer: 4
I/BackgroundRealmActivity(24029): Thread: 85943
I/BackgroundRealmActivity(24029): Integer: 5
I/BackgroundRealmActivity(24029): Thread: 85944
I/BackgroundRealmActivity(24029): Integer: 6
I/BackgroundRealmActivity(24029): Thread: 85945
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Integer: 7
I/BackgroundRealmActivity(24029): Thread: 85946
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Integer: 8
I/BackgroundRealmActivity(24029): Thread: 85947
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
I/BackgroundRealmActivity(24029): Back on MainThread Id: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment