2012-01-09 2 views
30

SimpleCursorAdapter один из осуждает его конструкторов со следующим комментарием:SimpleCursorAdapter устарел в API версии 15?

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

Означает ли это, что весь класс не рекомендуется? Другой (стандартный) конструктор не устарел.

+0

Есть ли у вас пример использования адаптера с LoadManager и CursorLoader? – DevZer0

ответ

49

Только конструктор устарел, а не весь класс.

SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to) звонки SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to, int flags) с flags установлены на FLAG_AUTO_REQUERY.

Но FLAG_AUTO_REQUERY осуждается, потому что

[...] это приводит к Cursor запросов выполняется на UI потока приложения [...]

так и конструктор является устаревшим ,

Стандартный конструктор не устарел, но, очевидно, вам не нужно называть его flags = FLAG_AUTO_REQUERY!

Наконец, если вы используете SimpleCursorAdapter с CursorLoader, как следует из документации, этот флаг не нужен, и вы можете пройти 0.

+1

Вот документация: https://developer.android.com/training/load-data-background/setup-loader.html –