2012-01-09 13 views
30

SimpleCursorAdapter deprecates jednym z jego konstruktorów z następującym komentarzem:SimpleCursorAdapter przestarzałe w wersji API 15?

przestarzała. Ta opcja jest odradzana, ponieważ powoduje wykonywanie zapytań kursora w wątku interfejsu użytkownika aplikacji, a tym samym może powodować niską responsywność lub nawet błędy braku odpowiedzi aplikacji. Alternatywnie użyj android.app.LoaderManager z android.content.CursorLoader.

Czy to powoduje, że cała klasa jest przestarzała? Inny (standardowy) konstruktor nie jest przestarzały.

+0

masz przykład użycia adaptera z LoadManager i CursorLoader? – DevZer0

Odpowiedz

49

Tylko konstruktor jest przestarzały, a nie cała klasa.

SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to) dzwoni SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to, int flags) z flags ustawiona na FLAG_AUTO_REQUERY.

Ale FLAG_AUTO_REQUERY jest przestarzała, ponieważ

[...] skutkuje zapytaniami kursorów wykonywane na aplikacji UI wątku [...]

więc również konstruktor jest przestarzała .

Standardowy konstruktor nie jest przestarzały, ale oczywiście nie trzeba go wywoływać pod numerem flags = FLAG_AUTO_REQUERY!

Wreszcie, jeśli używasz SimpleCursorAdapter z CursorLoader, jak sugeruje dokumentacja, flaga ta nie jest potrzebna i można przekazać 0.

+1

Oto dokumentacja: https://developer.android.com/training/load-data-background/setup-loader.html –

Powiązane problemy