Android:CursorAdapterコンストラクタの一部非推奨化Yukiの枝折2012/03/26Android:CursorAdapterコンストラクタの一部非推奨化Android3.0以降、CursorAdapterコンストラクタの引数"flag"に制約が追加されました。この変更はサブクラスであるResourceCursorAdapterやSimpleCursorAdapterにも影響します。Android2.3.x以前は、コンストラクタの引数"flag"に設定可能な値としてFLAG_AUTO_REQUERYが存在していましたが、Android3.0以降これは非推奨となりました。http://developer.android.com/reference/android/widget/CursorAdapter.html#FLAG_AUTO_REQUERY●非推奨となるAPI注意すべきポイントは、flag指定を省略したコンストラクタである下記は、デフォルトでflagにFLAG_AUTO_REQUERYを設定します。c)を呼んでいるため非推奨となりました。to)また、下記コンストラクタのautoRequeryにtureを設定するのもNGです。autoRequery)●非推奨となった経緯FLAG_AUTO_REQUERYは監視コンテンツの変更を検知した際に自動でrequeryさせるためのフラグです。requeryによるクエリ実行処理はUIスレッド上で行われるため、パフォーマンス上の観点から非推奨となりました。Android3.0でLoaderが追加されたように、UIスレッドでのクエリ実行は基本NGです。●代替案flagにはFLAG_REGISTER_CONTENT_OBSERVERをセットするか0を設定することです。これらの値で初期化されたCursorAdapterはrequeryが実行されません。autoRequeryは必ずfalseを設定するようにします。クエリの再発行が必要である場合はCursorLoaderの使用を考えることができます。Loaderによるクエリ実行はUIスレッドでは行われません。下記のようにすれば、LoaderによるCursorの取得を契機にAdapterのCursorを更新することが可能です。mAdapter.swapCursor(result);}※LoaderManagerコールバック内で、結果セットを破棄(cursor.close)してはいけません。CursorAdapter.changeCursor(Cursor)はcursorをcloseするため、ここではswapCursor(Cursor)を使用する必要があります。ホーム人気の投稿Android:引数はthisか?getApplicationContextか?ActivityとApplicationの違いAndroidにはContextを引数にとるAPIが数多く存在しています。