当我的应用程序启动时,我使用我的分片首选项中的值填充容器类。我的想法是处理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实例并获得他们想要的值会更好吗?
由于
答案 0 :(得分:6)
每次请求相同名称的首选项时,都会返回相同的SharedPreferences
对象。如果不是这样的话,框架内部需要有很多复杂的代码来处理多个SharedPreference
对象,当它们中的一个被其中一个更改时,它们的状态保持同步。
(这是将其称为“共享”偏好设置的理念。)