Je reçois une information dans Android Studio selon laquelle getSupportLoaderManager est obsolète. Mais je veux appeler:
getSupportLoaderManager().initLoader(0, null, mRecipeLoaderManager);
Quelle devrait être l'alternative pour cet appel? Ou puis-je quand même utiliser getSupportLoaderManager sans m'inquiéter?
Comme indiqué ici: Chargeurs
"Les chargeurs sont obsolètes depuis Android P (API 28). L'option recommandée pour traiter le chargement de données lors du traitement des cycles de vie Activité et Fragment consiste à utiliser une combinaison de ViewModels et LiveData."
Chaque fois que vous voyez quelque chose qui est obsolète, allez directement sur le site du développeur et voyez la classe ou la fonction que vous recherchez. Ils la marquent déjà comme deprecated
et il y aura une meilleure alternative.
Vous pouvez toujours utiliser getSupportLoaderManager
si vous avez besoin de: Android.support.v4.app.LoaderManager.getInstance(this).initLoader(0, null, this).forceLoad();
Cette méthode est obsolète parce que les chargeurs ont été dissociés de leurs implémentations historiques Fragment
et FragmentActivity
afin de vivre dans leur propre bibliothèque qui sera bientôt une dépendance facultative, et que leur implémentation a été réécrite au-dessus de composants architecture.
La méthode non groupée pour extraire une instance LoaderManager
consiste à utiliser la méthode de fabrique statique:
où T
est une instance de LifecycleOwner
et ViewModelStoreOwner
(les principales implémentations étant FragmentActivity
et Fragment
).
Ici vous avez une brève explication sur la façon de remplacer Loaders avec ViewModel:
https://developer.Android.com/jetpack/Arch/viewmodel#loaders
Les graphiques sont explicites, je pense:
Pour une explication plus détaillée, vous pouvez lire ce billet de blog: