フィードアプリを実装しようとしています。私は最大3秒間(フィードネットワークコールが完了したかどうかにかかわらず)実行され、ユーザにフィードが見える私のホーム画面に移動するスプラッシュアクティビティの新しいフィードをネットワークで呼びたいと思っています。私はスプラッシュで行った電話の応答をホームアクティビティに戻したいと思います。 RxJavaでRetrofitを使用してネットワークコールを行っています。私はこれを試すために再生オペレータでConnectableObserverを使用しようとしましたが、動作していません。私はこの方法スプラッシュでデータを先取りする
MyClientNetworkUtil.initObservable()を呼び出すSplashActivity者のonCreateで
。
MyClientNetworkUtilクラスは私のHomeActivityののonCreate機能に続いて、コード
パブリッククラスMyClientNetworkUtil {
private static MyClient client = ServiceGenerator.generateService(MyClient.class); private static ConnectableObservable<List<DataModel>> x; public static void initObservable() { Observable<List<DataModel>> o = client.dataForUser("user"); x = o.subscribeOn(Schedulers.io()).publish(); x.connect(); } public static ConnectableObservable<List<DataModel>> getObservable() { return x.replay(1); }
}
を以下している、私がやろうとしています:
ConnectableObservable<List<DataModel>> x = MyClientNetworkUtil.getObservable(); x.connect(); x.subscribe(response -> Log.d("Response", response.get(1).getName()), e -> Log.e("Response", e.toString()));
ただし、上記のログステートメントは実行されません。 私はここで間違っていることを手伝ってもらえますか?
ありがとうございました。
x.replay(1)は、X以外の別のConnentableObservableを取得することを意味します。 –