0

我想知道,我正在使用 Application 子类来访问活动中的一些全局数据。我想知道在性能和内存方面什么会更好。

将应用程序对象分配给onCreate中的字段变量并将其作为mamber访问是否更好

Activity

 onCreate() {
     mApp = (MyApplication) getApplication()
 }

或者

不要每次都使用成员并调用 getApplication 并将其分配给局部变量?

MyApplication app = (MyApplication) getApplication()

据我所知,允许立即对局部变量进行垃圾收集,但必须将成员保存在内存中。

由于我认为 Application 对象是一个大对象,因此可以将其保存在内存中还是应该允许它进行垃圾收集?

谢谢

4

1 回答 1

2

Application对象将始终在内存中。您要么缓存为字段成员,要么每次都为局部变量检索它,这只是它的参考。后者不会给你任何空间或时间的好处。


Application对象及其所有子对象和孙对象heap只能继续存在。该方法getApplication()所做的只是返回address到此root对象树的 。无论对象树有多长或每个对象元素有多大,地址/指针/引用大小都将保持不变。

于 2013-10-22T13:06:56.037 回答