代码之家  ›  专栏  ›  技术社区  ›  arun8

什么是Android中的全局消息池?它在内存中的位置?

  •  6
  • arun8  · 技术社区  · 11 年前

    当我在查找 处理程序获取消息() , 我读到它从全局消息池中检索消息,而不是创建消息的新实例。此全局消息池位于何处?
    它是之前创建的所有消息对象的集合吗?

    3 回复  |  直到 11 年前
        1
  •  3
  •   Laurent B    11 年前

    这仅仅意味着dalvik将消息存储在 回收利用 物体。这些是从静态池线程创建和存储的:

    private static Message sPool;
    

    您将无法直接访问它,但仍可以调用以下方法 recyle .

    你可以看看源代码 here .

    至于具体位置: heap .

        2
  •  2
  •   laalto    11 年前

    这是中的链接列表 Message 。列表的标题存储在 static 变量 Source .

    邮件将与 recycle() .

        3
  •  1
  •   marcinj    11 年前

    您可以查看来源:

    Message obtain() :
    

    http://androidxref.com/4.4.2_r1/xref/frameworks/base/core/java/android/os/Message.java#106

    其使用:

    private static Message sPool;
    

    一个静态类变量(实际上它是一个链接列表),所以这个池对应用程序是全局的。

    在提供的链接中,您可以找到 public void recycle() 返回不再需要消息到上述池的方法。