タグ付けされた質問 「rx-android」

3
RxJavaスケジューラの使用例
RxJavaには、5つの異なるスケジューラーから選択できます。 immediate():現在のスレッドですぐに作業を実行するスケジューラを作成して返します。 trampoline():現在の作業が完了した後に実行される現在のスレッドで作業をキューに入れるスケジューラを作成して返します。 newThread():作業単位ごとに新しいスレッドを作成するスケジューラを作成して返します。 Calculation():計算作業を目的としたスケジューラを作成して返します。これは、イベントループ、コールバックの処理、およびその他の計算作業に使用できます。このスケジューラでIOバインド作業を実行しないでください。スケジューラを使用します。代わりにio()。 io():IOにバインドされた作業を目的としたスケジューラを作成して返します。実装は、必要に応じて拡張されるエグゼキュータスレッドプールによってサポートされます。これは、ブロッキングIOを非同期で実行するために使用できます。このスケジューラで計算作業を実行しないでください。スケジューラを使用します。代わりに計算()。 質問: 最初の3つのスケジューラは自明です。ただし、計算とioについて少し混乱しています。 「IOバウンド作業」とは正確には何ですか?ストリーム(java.io)およびファイル(java.nio.files)の処理に使用されますか?データベースクエリに使用されますか?ファイルのダウンロードやREST APIへのアクセスに使用されますか? どのように計算は()とは異なる)newThread( ?それはすべての計算です()呼び出しが毎回新しい(バックグラウンド)スレッドではなく単一の(バックグラウンド)スレッド上にあるのですか? IO作業を行うときに計算()を呼び出すのはなぜ悪いのですか? 計算作業を行うときにio()を呼び出すのはなぜ悪いのですか?


3
Retrofit 2.0とRxJavaを使用して応答ステータスコードを取得する
Retrofit 2.0にアップグレードして、AndroidプロジェクトにRxJavaを追加しようとしています。私はAPI呼び出しを行っており、サーバーからのエラー応答の場合にエラーコードを取得したいと考えています。 Observable<MyResponseObject> apiCall(@Body body); そしてRxJava呼び出しで: myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(MyResponseObject myResponseObject) { //On response from server } }); Retrofit 1.9では、RetrofitErrorがまだ存在しており、次のようにしてステータスを取得できます。 error.getResponse().getStatus() RxJavaを使用してRetrofit 2.0でこれをどのように行いますか?

3
io.reactivex.Observableの呼び出しアダプターを作成できません
簡単なgetメソッドをサーバー(Railsアプリ)に送信し、RxJavaとRetrofitを使用して結果を取得します。私がしたことは: 私のインターフェース: public interface ApiCall { String SERVICE_ENDPOINT = "https://198.50.214.15"; @GET("/api/post") io.reactivex.Observable<Post> getPost(); } 私のモデルはこれです: public class Post { @SerializedName("id") private String id; @SerializedName("body") private String body; @SerializedName("title") private String title; public String getId () { return id; } public String getBody () { return body; } public String getTitle …

8
オブザーバブルのリストを組み合わせて、すべてが完了するまで待ちます
TL; DR どのように変換するためTask.whenAll(List<Task>)にRxJava? 私の既存のコードは、Boltsを使用して非同期タスクのリストを作成し、それらのタスクがすべて完了するまで待ってから、他の手順を実行します。基本的に、Boltsサイトの例のように、リスト内のすべてのタスクが完了するList<Task>と、を構築して、Task完了としてマークされたシングルを返します。 私は交換するために探しているBoltsとRxJava、私は非同期タスクのリストを構築するこの方法を想定した(サイズは事前に知られていない)と、すべてのシングルにそれらをラップするよObservable可能ですが、私は方法がわかりません。 私は見てみましたmerge、zip、concat等...しかし、上で動作するように得ることができないList<Observable>、彼らはすべてのちょうど2つで作業に合わせたように見えるように私が構築するだろうとObservables私が正しくドキュメントを理解すれば一度に。 私は学ぼうとしていますがRxJava、まだ非常に新しいので、これが明らかな質問であるか、どこかのドキュメントで説明されている場合は、ご容赦ください。検索してみました。どんな助けでも大歓迎です。

1
Rxjava Schedulers.newThread()とSchedulers.io()による後付け
ネットワークリクエストとSchedulers.newThread()比較Schedulers.io()して使用する利点は何ですかRetrofit。を使用した例をたくさん見てきましたがio()、その理由を理解したいと思います。 状況の例: observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread())... vs observable.onErrorResumeNext(refreshTokenAndRetry(observable)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())... 私が見た理由の1つは- newThread()作業単位ごとに新しいスレッドを作成します。io()スレッドプールを使用します しかし、その議論がアプリに与える影響は何ですか?そして、他にどのような側面がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.