标签:TextLayoutCache文本:缓存值已删除

时间:2013-07-03 13:50:51

标签: android android-layout textview

在某些时候调试我的Android应用程序时,我在LogCat中看到大量条目

Tag: TextLayoutCache Text: Cache Value 0x51b9f578 deleted, size=168 (the hexa value changes from entry to entry)

有谁知道这是关于什么的?内存泄漏?如果有问题,如何解决它的任何想法? 谢谢!

2 个答案:

答案 0 :(得分:5)

网上似乎没有明确的答案,所以我查看了TextLayoutCache.cpp的代码。看起来很好。它缓存文本布局数据以提高性能,目前TextLayoutCache.h中定义的固定默认缓存大小为0.5MB。

因此,如果您将布局文本更改为一组固定值(<0.5MB),则无法查看日志消息。

如果将文本更改为动态值,则最终将填充缓存并删除LRU(最近最少使用的)缓存条目,并且您将看到日志消息。它只是一个调试消息,而不是错误,而不是泄漏。它是关于Android内部如何处理我们的应用程序的有用性能指标。

请注意,Android版本&gt; = 5中未使用TextLayoutCache。

答案 1 :(得分:0)

当我使用runnable&amp;更新处理程序中的textView值时,我遇到了同样的问题。

我通过findViewById()将textViews的实例收集到变量中,然后通过引用这些收集的实例来更新textview的值。

所以,正如我观察到的那样,我不需要在我的hander之外的那个textview的实例,所以我只是在处理程序中使用findViewById()并更新了我的文本视图。

在您需要id的上下文中编写findviewById()。(在我的情况下,使用它来讨论函数的括号内。)

希望这会有所帮助......