SharedPreferences アクセスを静的に保持するクラスを作成しました。AOSP ContextImpl.java の SharedPreferenceImpl を見ると、実行時に使用されていることがsynchronized(this)
わかります。put
get
synchronized
以下のコードのどこかに追加する必要がありますか?
public class AppPreferences {
// Get static SharedPreferences Editor
private static Editor getEditor(Context ctx) {
return PreferenceManager.getDefaultSharedPreferences(ctx).edit();
}
// Get static SharedPreferences
private static SharedPreferences getPref(Context ctx) {
return PreferenceManager.getDefaultSharedPreferences(ctx);
}
public static String getUserName(Context ctx, String defaul) {
return getPref(ctx).getString("user_name", defaul);
}
public static void setUserName(Context ctx, String text) {
getEditor(ctx).putString("user_name", text).commit();
}
}