0

サービスによって呼び出されたスレッドから sharedpreferences を使用しようとしています:

SharedPreferences startPref = PreferenceManager.getDefaultSharedPreferences(context);
            //SharedPreferences startPref = context.getSharedPreferences("MyPref", 0);
            startPref.edit().putString("REFRESHED", when);
            startPref.edit().commit();
            System.out.println("Time put " + when);
            System.out.println("Got time " + startPref.getString("REFRESHED", "WRONG"));

そこに文字列を入れてから戻そうとしますが、常に間違ったデフォルトメッセージが表示されます。私は startPref 初期化の両方のバリアントを使用しようとしました: コメント付きとコメントなしの両方が機能しません。

context はサービスの Context です。

4

1 に答える 1

5

変化する

startPref.edit().putString("REFRESHED", when);
startPref.edit().commit();

startPref.edit().putString("REFRESHED", when).commit();

を呼び出すたびにedit()、新しいSharedPreferences.Editorインスタンスが作成されます。したがって、あるエディターでは変更をコミットせずに残し、別のエディターでは変更をコミットしません。

于 2013-05-15T13:27:37.857 に答える