我想从三个独立的活动中共享用户配置数据。优点/缺点是什么? 一种方法优于另一种方法(使用单个Prefs文件或三个)?
我在想的是如果我使用一个,我会在主Activity中声明相同的const,一个la:
public static final String PREFS_NAME = "Pterodactyl"; //Activity 1
并使用getPreferences();
-OR:
我将在每个Activity中声明一个不同的const,一个la:
public static final String PREFS_NAME = "Pterodactyl"; //Activity 1
public static final String PREFS_NAME = "duckbilledPlatypus"; //Activity 2
public static final String PREFS_NAME = "yellowbelliedSapsucker"; //Activity 3
并使用getSharedPreferences();
是“六分之一,六分之一”还是其中一个“优于”另一个,为什么?
答案 0 :(得分:4)
任何全局且与所有活动相关的偏好都将位于全局文件中。现在你应该创建多少个文件主要取决于你的口味。由于属性文件只包含名称/值对而没有分组,因此无论它们是否在一个文件中都无关紧要。
我建议使用单个全局文件进行设置,这会让您的生活变得轻松。使用以下api:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
此处没有涉及文件名。因此,您可以在代码中没有任何首选项文件名。
关于特定于活动的文件,如果您有关于活动的属性要在会话中保留,例如您有要存储的滚动位置,请使用此选项,这样即使在关闭应用程序后回来也可以恢复它。
供参考:
http://developer.android.com/guide/topics/data/data-storage.html#pref
答案 1 :(得分:1)
我没有理由使用多个偏好文件;我只在我的应用程序中使用了一个活动。