私は、SharedPrefs の値を取得し、プログラムが作成されるたびにそれを 1 ずつインクリメントする、非常に単純なアクティビティを持っています。したがって、プログラムを開いて閉じる(バックアウトする)と、これが増加し続けると予想されます。ただし、値が保存されていないようです。各変更後にコミットを使用しています。
public class SharedPreferencesActivity extends Activity {
/** Called when the activity is first created. */
public static final String PREFERENCE_FILENAME = "MyGamePreferences";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
int int_out = 0;
SharedPreferences gameSettings = getSharedPreferences(PREFERENCE_FILENAME, MODE_PRIVATE);
SharedPreferences.Editor prefEditor = gameSettings.edit();
int_out = gameSettings.getInt("Username", 0);
Log.e("Pre",Integer.toString(int_out));
int_out = int_out + 1;
Log.e("During",Integer.toString(int_out));
prefEditor.putInt("UserName", int_out);
prefEditor.commit();
int_out = gameSettings.getInt("Username", 0);
Log.e("Post",Integer.toString(int_out));
}
}
上記のコードの Log.e ステートメントからの出力は次のとおりです。
前: 0 中: 1 投稿: 999
だからそれは後のようです
calling prefEditor.commit();
int_out = gameSettings.getInt("Username", 0);
SharedPref gameSettings は保存されませんでした。