Androidのアダプターとローダーの違いを知りたいです。私はすでにドキュメントを調べましたが、それらの違いを理解することはできません。どんな助けでもいただければ幸いです。ありがとう!
3 に答える
どちらもデータアクセスの抽象化を提供しますが、ローダーはバックグラウンドでクエリを実行しますが、アダプターは現在の(おそらくUI)スレッドで実行されます。
たとえば、コンテンツプロバイダーにアクセスする簡単な方法は、SimpleCursorAdapterを使用することです。ただし、アクティビティから直接大量のデータをクエリすると、アクティビティがブロックされ、「アプリケーションが応答していません」というメッセージが表示される場合があります。そうでない場合でも、ユーザーにはUIに迷惑な遅延が表示されます。これらの問題を回避するには、別のスレッドでクエリを開始し、終了するのを待ってから、結果を表示する必要があります。これは、CursorLoaderが行うことです。
そうは言っても、それらは時々互いに組み合わせて使用されます。この例では、データは最初にCursorLoaderでロードされ、次にそのカーソルがAdapterViewのアダプターで更新されて表示されます。
ローダー:-
ローダーを使用すると、アクティビティまたはフラグメントのデータを非同期で簡単に読み込むことができます。これらのデータは、すべてのアクティビティおよびフラグメントで使用できます。それらはデータの非同期ロードを提供します。
データのソースを監視し、コンテンツが変更されたときに新しい結果を提供します。
構成の変更後に再作成されると、最後のローダーのカーソルに自動的に再接続します。したがって、データを再クエリする必要はありません。
ここでは、ローダーに関する詳細を確認できます。
アダプタ:-
アダプタオブジェクトは、AdapterView
とそのビューの基になるデータの間のブリッジとして機能します。アダプタは、データ項目へのアクセスを提供します。アダプタは、データセット内の各アイテムのビューを作成する役割も果たします。 これがあなたのための1つのビデオです。このビデオを見ると、アダプターの機能と利点を理解できます。
これがAdapterの最良のチュートリアルです。
これらの2つのクラスは、異なるレベルの抽象化で動作すると思います。アダプタは実際のデータを提供するクラスによって実装される必要があるインターフェイスですが、ローダーには、カーソルに基づいてデータを非同期にロードする機能が含まれています。
ローダーは、アダプターとそれを実行するAsyncTaskと考えることができると思います。
また、ローダーはAndroid3.0以降でのみ利用可能であることに注意してください。