問題タブ [rx-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - コールバック/リスナーを使用した RxJava オブザーバブルの連鎖
私は Observable で Retrofit を使用しており、Observable を連鎖させたいと考えています。はタスクを実行する Observable を返すため、通常はmap()
またはのような関数でうまく機能します。ただし、この場合、次のことを行う必要があります。flatMap()
api
- からの getKey()
api
- 返されたキーを別のライブラリで使用
Foo
し、コールバックが呼び出されるのを待ちます。 - コールバックが戻ったら、結果を に送信します
api
。
これを単一の連鎖呼び出しにしたいので、一度登録するだけで済みます。merge()
またはjoin()
または何かを使用できると思いますが、コールバックを処理するための最良のアプローチが何であるかはわかりませんでした。
これを改善する方法はありますか?これは私がこれまでに持っているものです:
java - RxJava シングル バックグラウンド スレッド スケジューラ
私はRxJavaにかなり慣れていないので、これはおそらくばかげた質問です。私のシナリオを説明します。
一部の画像を更新するUIスレッドで実行されているコードがありますが、それらの画像はそれほど重要ではなく、生成中に少しリソースを消費するため、単一のスレッド(もちろんUIスレッドではありません)で生成したいと思います。それらを1つずつ生成します。私はトランポリンスケジューラが私が望むものだと推測していますが、私の問題は、それを使用するとUIスレッドで動作し、別のスレッドで実行したいということです。
明らかに、アイテムをキューに入れることができる独自のスレッドを作成して、それらを1つずつ処理できますが、RxJavaには簡単な解決策があると思いましたか?
私の現在のコードは次のようになります。
「UIスレッドで?」という私のログ 常に真です。では、そのコードと、同じことを実行しようとする後続のすべての試みを単一のスレッド (UI スレッドではなく) で実行して、その作業をキューに入れるための大量のコードを作成する必要がないようにするにはどうすればよいでしょうか?
編集:
これは、を使用して達成できるSchedulers.single()
と思います。または、独自のものを使用したい場合は、を使用できますnew SingleScheduler()
。私はまだテスト中ですが、これを投稿したときに望んでいたことをしていると思います。
android - OkHttp、Okio、RxJava を使用したファイルのダウンロード
OkHttp を使用してファイルをダウンロードし、Okio でディスクに書き込もうとしています。また、このプロセス用に rx オブザーバブルを作成しました。動作していますが、以前使用していたもの (Koush の Ion ライブラリ) よりも著しく遅いです。
オブザーバブルを作成する方法は次のとおりです。
速度が遅い原因を知っている人はいますか? または、演算子の使い方が間違っているのでしょうか?