安卓性能:SharedPreferences的代价

5

当我的应用程序启动时,我会从共享首选项中获取值,并将其填充到容器类中。这样做的想法是只处理SharedPreferences和PreferenceManager一次,因为它们可能很耗费资源。
以下是一个示例:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(cont); 
StorageClass.lifespan = Integer.parseInt( prefs.getString("lifespan", "8") );
StorageClass.hiRate = Integer.parseInt( prefs.getString("hiRate", "71") );
//and on and on for all preferences 

其他活动随后请求这些值。
但随着我的应用程序增长,主内存变得很紧张。

每个请求者创建一个SharedPreferences实例并获取他们想要的值是否更好?

谢谢


不用担心易错的解析,我只是缩短了它以方便阅读。 - soBinary
1个回答

8
每当您请求同一名称的偏好设置时,将返回相同的SharedPreferences对象。 如果不是这样,框架内部需要有大量复杂的代码来处理多个SharedPreference对象在其状态由其中之一更改时保持同步的问题。(这就是称它为“shared” preferences背后的想法。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接