web-dev-qa-db-fra.com

SimpleCursorAdapter déconseillé dans l'API version 15?

SimpleCursorAdapter déconseille l'un de ses constructeurs avec le commentaire suivant:

Obsolète. Cette option est déconseillée, car elle entraîne l'exécution de requêtes de curseur sur le thread d'interface utilisateur de l'application et peut donc entraîner une mauvaise réactivité ou même des erreurs d'application ne répondant pas. Comme alternative, utilisez Android.app.LoaderManager avec un Android.content.CursorLoader.

Est-ce que cela rend la classe entière obsolète? L'autre constructeur (standard) n'est pas obsolète.

30
vogella

Seul le constructeur est obsolète, pas toute la classe.

SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to) appels SimpleCursorAdapter (Context context, int layout, Cursor c, String[] from, int[] to, int flags) avec flags réglé sur FLAG_AUTO_REQUERY .

Mais FLAG_AUTO_REQUERY est obsolète car

[...] il en résulte des requêtes de curseur en cours d'exécution sur le thread d'interface utilisateur de l'application [...]

le constructeur est donc également obsolète.

Le constructeur standard n'est pas obsolète mais, évidemment, vous n'avez pas à l'appeler avec flags = FLAG_AUTO_REQUERY!

Enfin, si vous utilisez SimpleCursorAdapter avec un CursorLoader, comme le suggère la documentation, cet indicateur n'est pas nécessaire et vous pouvez passer 0.

53
Francesco Vadicamo