22

Volleyフレームワークはちょっと好きでしたが、まだ疑問があります。

たとえば、Volley は Loader パターンとどのように並んでいますか? リクエストは非同期で処理されるため、バックグラウンドで呼び出してもあまり意味がありません。一方、Loader パターンを無視すると、ロードをキャンセルして必要なリソースをリロードしますが、ちょっともったいないです。

Volley フレームワークは Android のローダーとどのように連携しますか?

4

4 に答える 4

12

Loader は、Volley リクエストを含め、事実上あらゆるものをカプセル化できます。Volley のように、すでにバックグラウンド作業を処理し、メイン スレッドでコールバックするフレームワークをローダーがカプセル化する場合、ローダーの実装は基本クラスAsyncTaskLoaderから継承するのではなく、単純に継承する必要があります。Loader次に、メソッドで Volley リクエストを開始しonForceLoad()ます。

ローダーがコールバックを介してメイン スレッドで結果を取得したら、呼び出してアクティビティ/フラグメントにプッシュするだけdeliverResult()です。

ローダーは、進行中の Volley リクエストへの参照を保持して、 でキャンセルできるようにする必要もありますonStopLoading()。onStopLoading() は、画面の回転などの構成変更の場合には呼び出されず、Activity を離れるときにのみ呼び出されます。

唯一の欠点は、ローダーにはエラーを伝播するための組み込みメカニズムがなく、Volley には組み込まれていることです。したがって、ローダー内の Volley エラー コールバックでは、null の結果を配信するか、ローカル ブロードキャストを送信してアクティビティ/フラグメントにエラーを通知する必要があります。

于 2014-04-20T00:10:37.140 に答える
3

Volley に関する記事を公開し、Loader パターンを介してプロジェクトに統合しました。高度なアプローチが示されています。ローダーの状態は完全に定義され、図に表示されます。

記事: https://plus.google.com/117981280628062796190/posts/8b9RmQvxudb

ローダー状態図

于 2015-01-25T14:47:35.393 に答える
1

RequestFuture クラスを介して、Volley と同期リクエストを行うことができます。私はこれを個人的に調べていませんが、ローダーでそれを活用して、両方の世界を最大限に活用できるようです (ローダーの読み込み安定性を備えた Volley's Cache)。

于 2013-08-30T19:58:06.910 に答える