0

この優れたユーザビリティパターンに従いたいと思います。アプリはデータをオフラインで保存して応答を高速化し、新しいデータをオンラインで取得したときに更新します。

そして、私はで使用LoadersLoaderManagerます。

さて、前述のアプローチを実装するための正しいアプローチは何Loadersですか?

現在、私は2つのアプローチを使用していますが、欠点があり、一般的にあまりエレガントではありません。

  1. SQLiteではなくアプリケーションコンテキストにデータを保存する
  2. 2つの別々のAsyncTaskLoaders-offlineLoaderonlineLoader。1つ目はSQLiteデータベースからデータをフェッチし、そこにある場合はすぐに表示し、2つ目は外部サーバーからデータをロードしてデータベース(offlineLoaderの場合)に書き込み、オフラインデータを置き換えます

私が本当に欲しいのは:

データをオフラインでフェッチしてLoaderManagerに返す単一のローダーですが、その後も引き続き機能し、準備ができたら新しいオンラインデータを返します。したがって、2回戻る必要があります-それも可能ですか?

4

1 に答える 1

1

解決策は、ContentProvidersを使用LoaderしてUIにデータをロードし、sデータをServiceダウンロードしてデータベースにプッシュすることです(そして、データContentProviderが変更されたことをアプリの残りの部分に通知します)。

于 2012-06-02T22:34:15.503 に答える