Intereting Posts

Что использовать CursorAdapter?

CursorAdapter имеет 3 конструктора. Посмотрите руководство и ссылку.

1) CursorAdapter (контекст контекста, курсор c)

Этот конструктор устарел. Эта опция не рекомендуется, так как это приводит к тому, что запросы курсора выполняются в потоке пользовательского интерфейса приложения и, таким образом, могут приводить к плохой отзывчивости или даже к ошибкам приложения, не отвечающим. В качестве альтернативы используйте LoaderManager с помощью CursorLoader.

2) CursorAdapter (контекстный контекст, курсор c, логическое автозадание)

Конструктор, который позволяет контролировать автоматическое резервирование. Рекомендуется не использовать это , а вместо этого использовать CursorAdapter (Context, Cursor, int).

3) CursorAdapter (контекст контекста, флаги Cursor c, int)

Рекомендуемый конструктор.

Flags Флаги, используемые для определения поведения адаптера; Может быть любая комбинация FLAG_AUTO_REQUERY и FLAG_REGISTER_CONTENT_OBSERVER.

FLAG_AUTO_REQUERY Эта константа устарела . Эта опция не рекомендуется, так как это приводит к тому, что запросы курсора выполняются в потоке пользовательского интерфейса приложения и, таким образом, могут приводить к плохой отзывчивости или даже к ошибкам приложения, не отвечающим. В качестве альтернативы используйте LoaderManager с помощью CursorLoader.

FLAG_REGISTER_CONTENT_OBSERVER. Этот флаг не нужен при использовании CursorAdapter с CursorLoader.

CursorAdapter (контекст контекста, Cursor c, int flags) является рекомендуемым конструктором, но возможные флаги – 2, один – устарел, а другой не нужен при использовании CursorAdapter с CursorLoader. Если я использую CursorAdapter с CursorLoader, я должен использовать этот конструктор и передать ноль в качестве флага? И в этом случае конструктор же, чем # 1, не рекомендуется?

Solutions Collecting From Web of "Что использовать CursorAdapter?"

Используя # 1, он по умолчанию адаптера получает автообновление. Это отличается от №3, потому что вы можете указать, хотите ли вы автообновление (чего вы не должны указывать в документации). Таким образом, нет, # 1 и # 3 не совпадают, если вы передаете конструктор № 3.

CursorAdapter является абстрактным классом и как таковой не может быть создан.

Также имейте в виду, что 3-й конструктор – только API 11+.

Вам необходимо выполнить миграцию с помощью LoaderManager и Loader.

Потому что, скорее всего, все будут устаревшими. Поэтому лучше использовать CursorLoader с LoaderManager и Loader

Вы можете найти образец проекта в приведенной ниже ссылке, которая получает список приложений, установленных на любом телефоне.

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

Удачи..