ファイルから、SharedPreferences xml ファイルを SD カードにバックアップします。
File taskExceptionFile = new File(Environment.getDataDirectory()
+ "/data/" + packageName + "/shared_prefs/" + TaskAction.SHARED_PREF_TITLE_TASK_EXCEPTION + ".xml");
ただし、ファイルを復元するときに、ファイルが開かれている場合
SharedPreferences sp = context.getSharedPreferences(TaskAction.SHARED_PREF_TITLE_TASK_EXCEPTION, 0);
復元する前に、SharedPreferences にキャッシュがあるようです。復元後にルート エクスプローラーを使用してファイルを確認します。値は実際にはバックアップ ファイルの値ですが、使用すると
sp.getInt(TaskAction.SHARED_PREF_TASK, 0)
値を取得するには、値はバックアップ ファイルからの新しい値ではなく、デフォルト値 0 を返します。アプリを強制停止し、アプリを再入力すると、値は新しい値になります。
それで、新しい値を取得できるように、ファイルを復元するときにすぐに SharedPreferences を更新する方法を尋ねたいですか?
下手な英語でごめんなさい~~~