Почему Cursor.requery () помечен как устаревший? - PullRequest
3 голосов
/ 16 августа 2011

Cursor.requery () является очень распространенным методом при его использовании для обновления содержимого ListView.Но почему этот метод помечен как «устаревший»?Я не могу ясно понять причину документации по API.

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

Может кто-нибудь объяснить, пожалуйста, причину дальше?Спасибо:)

1 Ответ

3 голосов
/ 16 августа 2011

Я полагаю, что это было сделано, потому что новый Loaders API был введен для упрощения асинхронного запроса курсоров.

Как говорится в примечании об устаревании

Не используйте это. Просто запросите новый курсор, чтобы вы могли делать это асинхронно и обновлять представление списка после возвращения нового курсора.

это то, что мы должны использовать.

обновление

Похоже, это также может быть связано с устареванием Activity.startManaginCursor:

startManagingCursor (Курсор c) Этот метод устарел. Вместо этого используйте новый класс CursorLoader с LoaderManager; это также доступно на старых платформах через пакет совместимости Android. Этот метод позволяет заданию позаботиться об управлении жизненным циклом данного Курсора для вас на основе жизненного цикла задания. То есть, когда действие останавливается, оно автоматически вызывает deactivate () для данного Курсора, а когда оно будет перезапущено позднее, оно будет вызывать Requery () для вас. Когда действие уничтожено, все управляемые курсоры будут закрыты автоматически. Если вы нацелены на HONEYCOMB или более позднюю версию, рассмотрите вместо этого использование LoaderManager вместо этого, доступного через getLoaderManager ()

...