Cursor.requery() は、ListView のコンテンツを更新するために使用する非常に一般的な方法です。しかし、なぜこのメソッドは「非推奨」とマークされているのでしょうか? API ドキュメントの理由がよくわかりません。
Cursor.requery() API: http://developer.android.com/reference/android/database/Cursor.html#requery ()
誰か理由を詳しく説明してくれませんか? ありがとう:)
Cursor.requery() は、ListView のコンテンツを更新するために使用する非常に一般的な方法です。しかし、なぜこのメソッドは「非推奨」とマークされているのでしょうか? API ドキュメントの理由がよくわかりません。
Cursor.requery() API: http://developer.android.com/reference/android/database/Cursor.html#requery ()
誰か理由を詳しく説明してくれませんか? ありがとう:)
Cursor の非同期クエリを簡素化するために新しいLoaders APIが導入されたため、これが行われたと思います。
非推奨メモが言うように
これを使用しないでください。新しいカーソルをリクエストするだけで、これを非同期で実行でき、新しいカーソルが戻ってきたらリスト ビューを更新できます。
それが私たちが使うべきものです。
アップデート
の非推奨にも関連しているようですActivity.startManaginCursor
:
startManagingCursor(Cursor c) このメソッドは非推奨です。代わりに、LoaderManager で新しい CursorLoader クラスを使用してください。これは、Android 互換性パッケージを通じて古いプラットフォームでも利用できます。このメソッドにより、アクティビティは、アクティビティのライフサイクルに基づいて、指定された Cursor のライフサイクルを管理できます。つまり、アクティビティが停止すると、指定された Cursor で自動的に activate() が呼び出され、後で再開されると requery() が呼び出されます。アクティビティが破棄されると、管理されているすべての Cursor が自動的に閉じられます。HONEYCOMB 以降をターゲットにしている場合は、代わりに getLoaderManager() を介して利用可能な LoaderManager を使用することを検討してください。