18

Androidのアダプターとローダーの違いを知りたいです。私はすでにドキュメントを調べましたが、それらの違いを理解することはできません。どんな助けでもいただければ幸いです。ありがとう!

4

3 に答える 3

24

どちらもデータアクセスの抽象化を提供しますが、ローダーはバックグラウンドでクエリを実行しますが、アダプターは現在の(おそらくUI)スレッドで実行されます。

たとえば、コンテンツプロバイダーにアクセスする簡単な方法は、SimpleCursorAdapterを使用することです。ただし、アクティビティから直接大量のデータをクエリすると、アクティビティがブロックされ、「アプリケーションが応答していません」というメッセージが表示される場合があります。そうでない場合でも、ユーザーにはUIに迷惑な遅延が表示されます。これらの問題を回避するには、別のスレッドでクエリを開始し、終了するのを待ってから、結果を表示する必要があります。これは、CursorLoaderが行うことです。

そうは言っても、それらは時々互いに組み合わせて使用​​されます。この例では、データは最初にCursorLoaderでロードされ、次にそのカーソルがAdapterViewのアダプターで更新されて表示されます。

于 2013-01-04T18:48:18.040 に答える
12

ローダー:-
ローダーを使用すると、アクティビティまたはフラグメントのデータを非同期で簡単に読み込むことができます。これらのデータは、すべてのアクティビティおよびフラグメントで使用できます。それらはデータの非同期ロードを提供します。
データのソースを監視し、コンテンツが変更されたときに新しい結果を提供します。
構成の変更後に再作成されると、最後のローダーのカーソルに自動的に再接続します。したがって、データを再クエリする必要はありません。
ここでは、ローダーに関する詳細を確認できます。

アダプタ:-
アダプタオブジェクトは、AdapterViewとそのビューの基になるデータの間のブリッジとして機能します。アダプタは、データ項目へのアクセスを提供します。アダプタは、データセット内の各アイテムのビューを作成する役割も果たします。 これがあなたのための1つのビデオです。このビデオを見ると、アダプターの機能と利点を理解できます。
これがAdapterの最良のチュートリアルです。

于 2012-09-14T10:29:56.427 に答える
3

これらの2つのクラスは、異なるレベルの抽象化で動作すると思います。アダプタは実際のデータを提供するクラスによって実装される必要があるインターフェイスですが、ローダーには、カーソルに基づいてデータを非同期にロードする機能が含まれています。

ローダーは、アダプターとそれを実行するAsyncTaskと考えることができると思います。

また、ローダーはAndroid3.0以降でのみ利用可能であることに注意してください。

于 2012-09-14T10:09:46.757 に答える