0

カーソルアダプタを使用してRecyclerViewを持っています。カーソルからロードされたアイテムごとに、外部のContentProvider(私のものではない)から追加のデータをロードする必要があります。AsyncQueryHandlerまたはAsycTaskを使用してアダプタデータをマージする

onBindViewHolder()からAsyncQueryHandlerまたはAsyncTaskのいずれかを開始することを検討しています。どちらが良い選択ですか、なぜですか?

または、このアプローチはちょっと悪い考えですか?異なるソースからのデータをマージするためのより良いソリューションはありますか?

答えて

1

私はRxJavaを探しています。

https://github.com/ReactiveX/RxJava/wiki/The-RxJava-Android-Module

なぜですか?唯一の欠点は学習曲線です。しかし、RxJavaは、AsyncTasksが吸うすべてのものを扱う素晴らしい方法を持っています。オプションのどちらも技術的にはであり、ではありませんが、実際にRxJavaが作っているので、実際にあなたのライフサイクルや複数の条件の中で努力する価値がないと思うように、もっと多くの作業が必要ですとても簡単です。

ここでは、AsyncTaskをRx.Observableに変換する方法を説明します。あなたはそれのハングアップを取得した後、あなたは再びAsyncTaskを使用することはありません!

+0

ありがとう、私はこれがRxにとって問題であると考え始めました。 'map'を使うと便利です。私は、ストリーム内の各要素にマップできる1つのストリームと関数(2番目のクエリ)を持っています。これが最善の方法であるかどうかはわかりません。 – sidecarcat

関連する問題