Tia*_*goM 8 variables android android-activity
我在这里有一个关于性能的一般性问题,我应该做哪些以及哪些不应该使用.我实际上在我的App中使用了两个活动,让我们称之为"第一个"和"第二个"活动.
在第一个活动中,我有一个公共静态对象,在我的例子中,它是一个由我创建的自定义对象的列表,称为Conjunction.
当我调用theSecond活动时,我想获取此列表的内容.那么我应该使用公共静态变量吗?有什么问题吗?第一项活动只有一个实例吗?那么使用公共静态变量没有问题..?我猜.
或者我应该计算整个列表并将信息放在一个大字符串上并使用putExtra方法将其发送到第二个活动?
对此的一个很好的解释是非常好的,我真的很感激 :)
Rag*_*dan 11
建议不要使用静态变量.静态变量存储在堆的PermGen部分中.即使类完成它,静态变量也会保留在堆中.垃圾收集器会进行标记和扫描.如果第2个活动中引用的第1个活动中有静态变量,则链接会保持很长时间.如果使用更多静态变量,可能会出现内存泄漏.还减少了不必要的对象的使用.
静态变量由ClassLoaders引用的Class对象引用 - 除非ClassLoader以某种方式删除Class或ClassLoader本身符合垃圾收集条件,否则静态变量不会被垃圾收集.因此,如果您使用在许多类中引用的静态变量,那么这些类和声明静态变量的类不能被垃圾收集,除非这些类可用于垃圾收集.因此,这会导致堆内存扩展,从而导致内存泄漏.
我建议使用puExtra作为基元类型.在你的情况下使用单身人士应该有帮助.
在这个视频中,这个人讨论了为什么不应该使用静态变量以及如何避免内存泄漏.http://www.youtube.com/watch?v=_CruQY55HOk.这家伙谈到使用MAT Analyzer来检查内存泄漏.
另外看看这个链接.http://developer.android.com/guide/faq/framework.html.看看标题下的详细信息*如何在单个应用程序中的活动/服务之间传递数据?
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |