Android-使用静态字段是否可以使活动重新启动仍然有效?

The*_*er- 1 java android android-activity

最近,我找到了一种可以抵抗配置更改的方法。我要做的是将要保护的对象声明为静态字段。这是一个好习惯吗?

Gav*_*vin 5

这从来都不是一个好习惯。以我自己的经验,我制作了一个带有静态变量的音乐播放器应用程序,并且其ram使用量猛增到75 mb以上,这远远超过了同类同类产品。原因是,它在活动被破坏时存储变量的值。如果您在位图或任何其他繁重的文件上具有静态变量,则会使内存泄漏,这对于用户而言并不令人满意,因为并非所有设备都具有足够的资源(ram)来跟上繁重的应用程序。

同样,静态变量通常也会产生NullPointerExceptions,因为许多其他活动也使用这些变量,而将变量设为null可能会导致应用程序完全失败。

我建议您将数据存储在SharedPreferences中,并仅使一个静态字段(如integer),并始终使用该字段从SharedPrefrences中检索值,这非常干净并减少了NullPointers。而且,只有一个静态变量使您可以更好地控制您的应用程序...对我来说,它节省了更改100个静态字段而不是更改1个静态字段的时间,因为它非常容易并且节省了内存...

希望我能有所帮助!