9

CursorAdapterには3つのコンストラクタがあります。ガイドとリファレンスを見てみましょう。どのようなCursorAdapterを使用しますか?

1)CursorAdapter(コンテキスト・コンテキスト、カーソルC)

このコンストラクタは推奨されています。このオプションは、アプリケーションのUI スレッドでCursorクエリが実行される結果、応答性が低下するか、アプリケーションでさえも発生する可能性があるため、お勧めできません。 応答エラー。代わりに、 CursorLoaderでLoaderManagerを使用してください。

2)CursorAdapter(コンテキスト・コンテキスト、カーソルC、ブールautoRequery)自動再クエリに対する制御を可能にする

コンストラクタ。 ではなく、CursorAdapter(Context、Cursor、int)を使用することをお勧めします。

3)CursorAdapter(コンテキスト・コンテキスト、カーソルC、フラグINT)

推奨コンストラクタ。

フラグアダプターの動作を判別するために使用されるフラグ。 FLAG_AUTO_REQUERYと FLAG_REGISTER_CONTENT_OBSERVERの任意の組み合わせです。

FLAG_AUTO_REQUERY この定数は、非推奨のです。このオプションは、 アプリケーションのUIスレッドでCursorクエリが実行されるため、応答性が低下するか、 アプリケーションが応答しないというエラーが発生する可能性があるため、 が推奨されていません。代わりに、 LoaderManagerにCursorLoaderを使用してください。

FLAG_REGISTER_CONTENT_OBSERVER。 CursorLoaderで CursorAdapterを使用する場合、このフラグは不要です。

CursorAdapter(コンテキスト・コンテキスト、カーソルC、INTフラグ)が推奨されるコンストラクタであるが、可能なフラグは2であり、一方が推奨されておらず、CursorLoaderとCursorAdapterを使用する場合、他に必要とされません。 CursorLoaderでCursorAdapterを使用すると、このコンストラクタを使用してフラグとしてゼロを渡す必要がありますか?そして、この場合、コンポーザーは廃止された#1と同じですか?

答えて

6

#1を使用すると、アダプタはデフォルトで自動再クエリーに設定されます。これは#3とは異なります。なぜなら、自動再クエリーを行うかどうかを指定することができるからです(ドキュメントごとにしないでください)。 #3コンストラクタ0を渡すと、#1と#3は同じではありません。

1

CursorAdapterは抽象クラスであり、インスタンス化できません。

また、3番目のコンストラクタはAPI 11+のみであることに注意してください。

+3

はい、私のアプリは、分版API 7を有しているが、私は互換パッケージを使用します – crbin1

0

LoaderManagerおよびLoaderを使用して移行する必要があります。

ほとんどすべてが非推奨になるためです。LoaderManagerとLoaderでCursorLoaderを使用する方が良い

サンプルプロジェクトは、任意の電話機にインストールされているアプリのリストを取得する下のリンクで見つけることができます。

https://github.com/alexjlockwood/AppListLoader.git

幸運..

関連する問題