3

共有設定をアプリケーションに正常に実装できましたが、タスクマネージャーを使用してアプリケーションを強制終了すると、データがリセット/削除されるという問題が発生しました。

保存に静的メソッドを使用しています。その方法で必要なのは1回だけで、アプリ内のどこからでも呼び出すことができます。

protected static synchronized void save(Context cntx){
    SharedPreferences preferences2 = cntx.getSharedPreferences("BluRealms", 0);
    SharedPreferences.Editor editor = preferences2.edit();
    editor.putBoolean("level", Stats.level);
    editor.commit();
}

アプリを強制終了するとすぐに、SharedPreferencesの保存メソッドのすべてのデータがデフォルト設定に戻されます。

また、検索を行ったところ、マニフェストファイルのにandroid:persistent = "true"を追加すると問題が解決するという投稿がいくつか見つかりましたが、これでもデータはリセットされます。


編集:まあ、私は自分の問題について少し情報を見つけたと思います。この問題は、私がテストしているデバイスであるSharedPreferencesを正しく保存しないSamsungGalaxyS電話の問題を浮き彫りにします。http://code.google.com/p/android/issues/detail?id=14359-特にコメント6

これに関するこれ以上の情報は素晴らしいでしょう!

4

2 に答える 2

4

保存メソッドから「保護された静的」を削除することで、これを解決できました。

グローバルなsaveメソッドを呼び出す代わりに、保存する必要のある各クラスにsaveメソッドを配置し、onPause()メソッドとonDestroy()メソッドでのみsaveメソッドを呼び出します。

クラス内でsave()を何度も呼び出した場合、アプリを閉じたときにSharedPreferencesも消去されたように見えることに気付きました。

ヒント:

共有設定を取得または設定するために静的メソッドを使用しないでください

于 2012-08-13T16:11:49.293 に答える
0

私の場合、マニフェストからandroid:allowBackup = "true"というタグを削除すると、問題が解決します。

于 2021-10-01T16:35:12.820 に答える