私のフラグメントは、非同期的に取得される動的情報を表します。DAO/DTO をフラグメントに提供する方法に興味があります。フラグメントは DTO への参照を維持する必要がありますか? 更新についてはどうですか。更新された DTO を要求し、これらの非同期呼び出しのリスナーになる必要がありますか?それとも、アクティビティが要求を作成し、非同期応答が到着したときにフラグメントを更新するように要求する必要がありますか?
質問する
787 次
1 に答える
1
Android でこれを行う「ベスト プラクティス」の方法は実際にはありません。多くの方法があり、それらの多くは有効です。
データの変更を追跡し、それを必要とするフラグメントに報告するサービスを作成することをお勧めします。これには注意して、サービスが必要な場合にのみアクティブになるようにする必要があります。そうしないと、バッテリーを消耗するバックグラウンド タスクが発生する可能性があります。
フラグメントが表示されているときにBroadcastReceiverを登録する最も簡単な方法(onResume の後、onPause で削除)。これは、マニフェストでアクティビティに設定できるインテント フィルターのようなものです。ここに良い例があります: http://www.vogella.com/articles/AndroidBroadcastReceiver/article.htmlz
受信者がインテントを取得したら、次の 3 つの方法があります。
- DAO を作成し、データにアクセスします (少し遅い可能性があります)。
- ContentProvider を使用し、レシーバーに送信されたインテントで新しいアイテムを受け取ります
- データが Serializable または Parcelable の場合、送信されたインテントに新しい新しいデータを追加できます。(たぶん最速)
アップデート
この種のタスクには、言及するのを忘れた便利なツールがあります。ローダー ローダー は、データ ソース (コンテンツ プロバイダーなど) を処理する簡単な方法を提供します。
于 2013-07-25T01:15:04.553 に答える