9

CursorAdapter ha 3 costruttori. Vediamo la guida e il riferimento.Quale CursorAdapter devo usare?

1) CursorAdapter (contesto Context, Cursore c)

Questo costruttore è deprecato. Questa opzione è sconsigliata, in quanto risulta in query del cursore eseguite nell'interfaccia utente dell'applicazione thread e pertanto può causare scarsa reattività o persino errori di risposta dell'applicazione non . In alternativa, utilizzare LoaderManager con un CursorLoader .

2) CursorAdapter (contesto contesto, il cursore c, autoRequery booleano)

costruttore che permette il controllo su auto-requery. Si consiglia di non si utilizza questo, ma invece CursorAdapter (Context, Cursor, int).

3) CursorAdapter (contesto contesto, il cursore c, int flags)

costruttore consigliato.

bandiere Flag utilizzati per determinare il comportamento dell'adattatore; può essere una qualsiasi combinazione di FLAG_AUTO_REQUERY e FLAG_REGISTER_CONTENT_OBSERVER.

FLAG_AUTO_REQUERY Questa costante è obsoleta. Questa opzione è sconsigliata, in quanto risulta che le query del cursore eseguite sul thread dell'interfaccia utente dell'applicazione e quindi possono causare scarsa reattività o anche errori di risposta non rispondente all'applicazione . In alternativa, utilizzare LoaderManager con CursorLoader.

FLAG_REGISTER_CONTENT_OBSERVER. Questo flag non è necessario quando si utilizza un CursorAdapter con un CursorLoader.

CursorAdapter (contesto contesto, il cursore c, int flags) è il costruttore consigliato, ma i possibili bandiere sono 2, uno è deprecato e l'altro non è necessaria quando si utilizza un CursorAdapter con un CursorLoader. Se utilizzo un CursorAdapter con CursorLoader devo usare questo costruttore e passare zero come flag? E in questo caso il costruttore è lo stesso del # 1 deprecato?

risposta

6

Utilizzando # 1, imposta automaticamente l'adattatore su Auto-Rewery. Questo differisce da # 3 perché è possibile specificare se si desidera eseguire l'auto-query (che non si dovrebbe, secondo la documentazione). Quindi, n. 1 e n. 3 non sono uguali se si passa il costruttore n. 0.

1

CursorAdapter è una classe astratta e come tale non può essere istanziata.

Inoltre, tenere presente che il terzo costruttore è solo API 11+.

+3

Sì, la mia app è la versione min API 7 ma io uso pacchetto di compatibilità – crbin1

0

È necessario eseguire la migrazione con LoaderManager e Loader.

perché molto probabilmente tutto sarebbe deprecato.quindi meglio usare CursorLoader con LoaderManager e Loader

È possibile trovare il progetto di esempio nel link sottostante che ottiene l'elenco delle app installate in qualsiasi telefono.

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

Buona fortuna ..