Actuellement, j'ai un chargeur parfois, je dois demander au chargeur de recharger à nouveau, en raison des changements de contenu. Je ferai cela. P> this.getLoaderManager().restartLoader(0, bundle, this);
3 Réponses :
Je pense, la principale différence est que la méthode Si vous décidez d'utiliser la méthode code> redémarreur code>, vous devez garder à l'esprit la destruction de l'ancien chargeur et les implications possibles pour votre application, telles que les re-initialisations lentes, etc. P>
Vous pouvez jeter un coup d'œil à la documentation méthodes pour plus d'informations - Notez également que l'ancien chargeur est détruit quand strong> le nouveau termine son travail p> redémarreur code> détruit l'ancien chargeur qui a le même identifiant et démarre un nouveau lorsque la méthode oncontentchanged code> force le chargeur charger ( Forceload code>) ou définit simplement un drapeau indiquant que le contenu a changé lorsque le chargeur a été arrêté. Dans le second cas, le «propriétaire» du chargeur reste responsable de son chargement (re) après que le contenu a changé. Je suppose que cela se fait automatiquement par le loadermanager code> comme dans le boîtier code> RedStartRerner code>. P>
restartharger code> et OnContentChanged code> P>
Call Si vous utilisez chaque appel à redémarreur code> Chaque fois que vous souhaitez des données fraîches ou que vous souhaitez modifier vos arguments pour le curseur. initloader code> pour charger des données p> initloader code> renvoie le même curseur sur Onloadfinished code>. La méthode code> oncreateloader code> ne sera appelée que sur le 1er appel à initloader. Par conséquent, vous ne pouvez pas changer la requête. Vous obtenez le même curseur les mêmes données sur la méthode Onloadfinished code>. P> @Override
public android.support.v4.content.Loader<Cursor> onCreateLoader(int id,
Bundle args) {
android.support.v4.content.Loader<Cursor> ret = null;
// Create a new CursorLoader with the following query parameters.
switch (id) {
// load the entire list
case LOADER_ID_LIST:
String sortOrder = null;
switch (mSortOrder) {
case 0:
sortOrder = RidesDatabaseHandler.KEY_DATE_UPDATE + " desc";
break;
case 1:
sortOrder = RidesDatabaseHandler.KEY_ID + " desc";
break;
case 2:
sortOrder = RidesDatabaseHandler.KEY_NAME;
}
return new CursorLoader(context, RidesDatabaseProvider.CONTENT_URI,
PROJECTION, null, null, sortOrder);
// load a single item
case LOADER_ID_ENTRY:
sortOrder = null;
String where = RidesDatabaseHandler.KEY_ID + "=?";
String[] whereArgs = new String[] { Integer.toString(lastshownitem) };
return new CursorLoader(context, RidesDatabaseProvider.CONTENT_URI,
PROJECTION, where, whereArgs, null);
}
return ret;
}
Le diagramme d'état devrait aider à comprendre comment utiliser API. Première fois, j'ai aussi passé beaucoup de minutes pour faire clairement la photo. Utilisez mon travail! P>
Article: https://plus.google.com/117981280628062796190/posts/8b9rmqvxudb a> p>
p>