SharedPreferences 能够获取其他应用的数据(前提是:其他应用将权限开出)。
对于子程序,为了将Preference空间的数据共享,采用以下代码设置。
public static int LOCAL_MODE =Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE;
public final static StringLOCAL_SHARED_PREFERENCE_NAME ="config";
mPreferenceManager .setSharedPreferencesMode(SPConstants.LOCAL_MODE);
mPreferenceManager.setSharedPreferencesName(SPConstants.LOCAL_SHARED_PREFERENCE_NAME);
这段代码定义了子程序存储的权限和本地的文件名。便于主程序进行读取。
同样在主程序中进行相似设置,不过不同的地方是,主程序中对应每个子程序保存的文件名为 [子程序包名]_config。
如图所示。
打开主程序时,读取子程序的config,并显示在见面上,当值修改时,保存的文件在主程序目录下。(注意:在代码中增加了一个字段,不会被显示,保存了最后编辑的时间点,用来判断应该子程序读取什么文件)
打开子程序时,分别读取主程序和子程序的sharedpreferences,读取保存时间的字段,选取最新的数据文档,使用并保存进子程序下的config.xml