L'utilisation correcte de chargeur de classe (en particulier dans Android)

J'ai lu quelques documentations sur les chargeurs de classe, mais im toujours pas sûr de savoir où et pourquoi ils sont nécessaires. L'API Android dit:

Charge des classes et des ressources à partir d'un
référentiel. Un ou plusieurs chargeurs de classe
sont installés au moment de l'exécution. Ce sont
consulté à chaque fois que le système d'exécution
besoin d'une classe spécifique qui n'est pas encore
disponible en mémoire.

Donc, si je comprends bien, il peut y avoir beaucoup de classlaoders qui sont responsables du chargement de nouvelles classes. Mais comment le système décide de l'utiliser? Et dans lequel la situation, si un développeur instancier un nouveau chargeur de classe?

Dans l'API Android pour Intention il existe une méthode

public void  setExtrasClassLoader  (ClassLoader  loader)

La description dit:

Définit le chargeur de classe qui sera utilisée
lorsque unmarshalling tout Parcelable
les valeurs de la extras de cette Intention.

Je peux donc définir il y a un spécial chargeur de classe pour que je puisse passer de l'objet avec une Intention qui ne sont pas définis dans la réception d'activité? Un exemple:

Si Une activité qui est situé dans Un Projet (dans Eclipse) définit un objet qui je veux envoyer à l'Activité B dans le Projet B à l'aide de putExtra de l'Intention de l'objet. Si cet objet qui est de l'envoyer sur l'Intention n'est pas défini (le code source dans un projet B), alors il existe un NoClassDefFoundException. Donc, puis-je utiliser la méthode setExtraClassloader pour éviter cette exception? Si oui, comment puis-je décider qui du chargeur de classe de l'objet-je passer? Et comment instancier correctement?

OriginalL'auteur | 2010-05-09