問題タブ [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.

0 投票する
3 に答える
5562 参照

android - Schedulers.io は何百もの RxCachedThreadSchedulers を作成します

Android アプリで RxJava を使用していますが、OutOfMemoryError が数回発生しました。デバイス マネージャーで確認したところ、200 を超えるスレッドがあり、そのほとんどが待機状態であり、通常は RxCachedThreadSchedulers であることに気付きました。スレッドが多すぎるため、OOMError が発生します。また、サービスを呼び出してトークンを取得してキャッシュするボタンを押すと、スレッド数が 5 増加することにも気付きました。

それで、私はググって、Schedulers.ioが無制限のスレッドを作成できることを発見しました。すべての Schedulers.io を Schedulers.computation に置き換えると、問題はなくなりますが、Schedulers.io を本来の使用方法で使用しているため、意味がありません。

では、Schedulers.io を使用して、スレッドが多すぎないようにするにはどうすればよいでしょうか?

アップデート

私はこのように退会を行います:

アップデート #2

私が定期的に Schedulers.io を使用する方法は次のとおりです。

と:

0 投票する
1 に答える
3325 参照

android - このコードで OnComplete が呼び出されないのはなぜですか? (Rxアンドロイド)

すべてのアイテムが発行されると、オブザーバーの OnComplete が呼び出されることを知っています。以下のコードでは、カーソルからデータを flatMap オペレーターの ArrayList に入れています。私のカーソルには 100 個のエントリがあり ( c.getCount() は 100 を返します)、リストのサイズは 100 です。 onNext も 100 回呼び出されます。しかし、onComplete は呼び出されません。onComplete にリストビューを作成しています。

Observable の新しいストリームは 100 後に完了する予定ですが、完了していません。

どんな助けでも大歓迎です、ありがとう

0 投票する
2 に答える
5263 参照

android - RxJava の .debounce() が Observable のスレッドとエラー処理に干渉している

Android アプリで標準的な検索を行いたいと思います。ここで を入力しEditText、ユーザーが入力し終わるまで少し待ってから、 Retrofit を使用してネットワーク リクエストを起動します。

これで、改造呼び出しを受け取り、リストを返すテストサーバーができました。「crash」と入力すると、サーバーは無効なコードとエラーを実行し、http ステータス コード 500 とエラー html を返します。そのため、レトロフィット コールは失敗します。

これにより、外側の Observable チェーンが影響を受けるべきではないと思います。私の前の質問を参照してください: RxJava では、オブザーバブルを完了する代わりに、エラー時に再試行/再開する方法

ただし、外側の Observable もエラーになり、チェーンが終了します。エラーは次のとおりです。 The current thread must have a looper!

変。今、私はなしで試してみました.debounce()が、同じことが起こりました。サーバーには内部エラーがありますが、外側の Observable はエラーになりませ

.debounce()では、この動作を引き起こしているスレッドに対して何をするのでしょうか? どうすれば回避できますか?

0 投票する
1 に答える
1064 参照

android - 例外が発生した場合に flatMap を短絡する

私はflatMap一連の HTTP 呼び出しを実行して、ユーザーの登録、プロファイルの取得、およびその他のことを行う を持っています。エラーのどの段階で発生したかに応じて、特定のエラー メッセージで通知onErrorしたいと思います。登録は成功したのかもしれませんが、作成したプロファイルを取得できませんでした。エラーが発生すると、後続のすべての呼び出しを停止するように、これをどのように達成できますか?subscriptionflatMapflatMap

Observablemyとの疑似コードを次に示しますSubscription