SharedPreferences の置換ファイルの後、新しい SharedPreferences ファイルをロードできません。アプリケーションを再インストールした後の動作です。アプリケーションを再起動した後、何も変わりません。
これはインポート/エクスポート クラスです。
public class Prefs {
private String PrefsDir = "/data/%packagename%/shared_prefs/";
private String ExportDir = "/";
private SharedPreferences _sharedPrefs;
private SharedPreferences.Editor _prefsEditor;
private Context context;
Prefs(Context context, String form) {
this.ExportDir = Environment.getExternalStorageDirectory().getPath() + ExportDir;
this.PrefsDir = Environment.getDataDirectory().getPath() + PrefsDir;
_sharedPrefs = context.getSharedPreferences(form, Activity.MODE_PRIVATE);
_prefsEditor = _sharedPrefs.edit();
}
private boolean copyfile(String srFile, String dtFile){
Popup.log("srFile = "+srFile);
Popup.log("dtFile = "+dtFile);
try{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
} catch(FileNotFoundException ex) {
Popup.popup(context, "File not found");
Popup.log(ex.getMessage());
return false;
} catch(IOException e) {
Popup.popup(context, "IO Error");
return false;
}
return true;
}
boolean Export(String form) {
return copyfile(PrefsDir+form+".xml", ExportDir+form+".xml");
}
boolean Import(String form) {
return copyfile(ExportDir+form+".xml", PrefsDir+form+".xml");
}
}
私の英語でごめんなさい