Si vous passez le même ID
chaque fois que vous appelez
restartLoader(int id, Bundle args, LoaderCallbacks<D> callback)
il sera RÉUTILISATION le même objet de chargeur. Mais si vous passez un nouveau ID
il va créer un nouvel objet Loader
. La façon dont cela fonctionne à partir de la vérification de la documentation this quote from the documentation:
Lance un nouveau ou redémarre un chargeur existant dans ce gestionnaire, enregistre les callbacks à lui, et (si l'activité/fragment est actuellement démarré) commence le charger. Si un chargeur ayant le même identifiant a déjà été démarré, il sera automatiquement détruit lorsque le nouveau chargeur aura terminé son travail. Le rappel sera livré avant que l'ancien chargeur ne soit détruit.
Mais vous n'avez pas à creuser en profondeur sur ce point car le ID
est ce qui compte à partir de ce guide de documentation, check the Loader Summary Here:
Pour démarrer le chargement de données à partir d'un chargeur, appelez soit initLoader() ou restartLoader(). Le système détermine automatiquement si un chargeur avec le même ID entier existe déjà et créera un nouveau chargeur ou réutilisera un chargeur existant.
Donc, en bref, si vous passez un ID
différent, il va créer un nouveau chargeur, mais si vous passez le même ID
il utilisera le même chargeur. Mais rappelez-vous Cursors
ne sont pas réutilisés.