2011-08-16 9 views
3

Cursor.requery()はListViewのコンテンツを更新する際に非常に一般的な方法です。しかし、なぜこのメソッドは「廃止予定」とマークされていますか?私はAPIのドキュメントの理由を非常にはっきりと理解できません。なぜCursor.requery()は「廃止予定」とマークされていますか?

Cursor.requery()API: http://developer.android.com/reference/android/database/Cursor.html#requery()

誰もが何らかのさらなる理由を説明していただけますか?ありがとう:)

答えて

3

新しいLoaders APIがカーソルを非同期に照会することを簡略化するために導入されたと考えられます。非推奨の注意点としては

はこれを使用しないでくださいと言います。新しいカーソルをリクエストするだけで、非同期でこれを実行し、新しいカーソルが戻ったときにリストビューを更新することができます。

これは私たちが使用すべきものです。

更新

またActivity.startManaginCursorの廃止に関連させることができると思わ:

startManagingCursor(カーソルC) この方法は推奨されています。代わりにLoaderManagerで新しいCursorLoaderクラスを使用してください。これはAndroid互換パッケージを通じて古いプラットフォームでも利用できます。このメソッドを使用すると、アクティビティのライフサイクルに基づいて、アクティビティで指定されたCursorのライフサイクルを管理することができます。つまり、アクティビティが停止すると、指定されたCursorでdeactivate()が自動的に呼び出され、後で再起動されると、requery()が呼び出されます。アクティビティが破棄されると、管理されているすべてのカーソルが自動的に閉じられます。 HONEYCOMB以降をターゲットにしている場合は、代わりにLoaderManagerを使用してください(getLoaderManager()経由で利用可能)。

関連する問題