Kev*_*v84 2 performance android
我是Android的新手,并且一直在阅读内存管理在那些内存有限的应用程序中非常重要.
我读过一些活动findViewById()非常昂贵的地方.所以我想知道,如果将视图存储为全局变量并重用该对象是一个好习惯吗?或者findViewById()每次我需要使用视图时运行更好吗?
谢谢,凯夫
如果你的意思是static variable通过global variable,则永远不会做到这一点!如果将视图保持为静态变量,则持有视图的活动将泄漏.
所有你在屏幕上看到的视图连接到一个特定的活动,和他们抱到活动的参考,如果你保持一个静态参考的意见之一,活动将永远不会被当活动被垃圾收集杀死(通过按BACK键或finish()在活动上调用方法).
至于findViewById(),我认为你不需要太在意它的性能,它可能会暴露一些开销,但它只是相对昂贵,它对于大多数应用来说足够快.
当您说“将视图存储为全局变量”时,我猜您的意思是“将对视图的引用保留为 Activity 类中的私有属性”。就内存而言,这不应该是问题:保留对视图的附加引用并不意味着将整个对象再次存储在内存中。
你必须记住的是,如果你保留对一个对象的引用,垃圾收集器将无法从内存中清除它,即使不再需要它。但是,由于您的视图可能不应该在您的活动之前被销毁,因此在 Activity 类中保留对它的引用不应导致内存泄漏。
简而言之:如果您需要在 Activity 类中频繁访问视图,我认为这是一个很好的做法。至少这是我所做的,所以如果有人不同意,我很想知道原因。
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |