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