Android性能:SharedPreferences的成本

时间:2011-07-13 16:15:21

标签: android performance memory sharedpreferences

当我的应用程序启动时,我使用我的分片首选项中的值填充容器类。我的想法是处理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实例并获得他们想要的值会更好吗?

由于

1 个答案:

答案 0 :(得分:6)

每次请求相同名称的首选项时,都会返回相同的SharedPreferences对象。如果不是这样的话,框架内部需要有很多复杂的代码来处理多个SharedPreference对象,当它们中的一个被其中一个更改时,它们的状态保持同步。

(这是将其称为“共享”偏好设置的理念。)