Quand je cherchais la fonctionnalité de Handler.ObtainMessage () Strong>,
J'ai lu que cela récupère un message de Global Message Pool au lieu de créer une nouvelle instance de message. Où réside ce pool de messages mondial?
Est-ce une collection de tous les objets de message créés auparavant? p>
3 Réponses :
C'est une liste liée dans Les messages sont mis à la piscine avec message code>. La tête de la liste est stockée dans une variable code> statique code>. source . < / p>
recycler () code>
. P>
Vous pouvez regarder dans des sources: http://androidxref.com/4.4.2_r1/xref/frameworks/base/core/java/android/os/message.java#106 p> qui utilise: p> une variable de classe statique (il s'agit d'une liste liée unique), ce pool est donc global à votre application. P > et dans la liaison fournie, vous pouvez trouver recyclage du vidité public () code> méthode qui ne renvoie plus de message au-dessus de la piscine. P> P>
Cela signifie simplement que Dalvik stocke les messages dans un pool de private static Message sPool;