.create()
を使用してObject
から汎用のSharedPrefs
を取得するとします。
_return Observable.create(subscriber -> {
String json = sharedPreferences.getString(key, "");
T myClass = gson.fromJson(json, generic);
subscriber.onNext(myClass);
subscriber.onComplete();
});
_
.fromCallable()
の使用:
_return Observable.fromCallable(() -> {
String json = sharedPreferences.getString(key, "");
return gson.fromJson(json, generic);
});
_
onComplete()
から最初に送信した直後にObservable.create()
を呼び出してObservable.fromCallable()
を使用した場合、違いはありますか?もしそうなら、_pros/cons
_は何ですか?
Observable.create
は複数のアイテムを放出し、fromCallable
は単一のアイテムのみを放出します。
後者を使用する必要があります。これは、単一の要素シーケンスを持つ意図についてより表現力があり、オーバーヘッドがわずかに低いためです。
欠点は、非同期の単一要素ソースを使用できないことですが、create
では、onNext
への呼び出しを後で遅らせることができます。