數據得到我使用一些代碼在活動的onActivityResult方法來更新數據:按鈕不更新從SharedPreference
//save state
editorUserInfoSharedPreferences.putString("userType", productId);
editorUserInfoSharedPreferences.putInt("paymentStatus", 1);
editorUserInfoSharedPreferences.commit();
editorUserInfoSharedPreferences.apply();
int paymentStatus = userInfoSharedPreferences.getInt("paymentStatus", 0);
String userType = userInfoSharedPreferences.getString("userType", "");
Log.e(TAG, "paymentStatus 1700: "+ paymentStatus);
Log.e(TAG, "userType 1700: "+ userType);
在日誌中的數據是正確的。但在那之後,我打一個按鈕,並從sharePreference獲取數據:
int paymentStatus = userInfoSharedPreferences.getInt("paymentStatus", 0);
String userType =
userInfoSharedPreferences.getString("userType", "");
Log.e(TAG, "paymentStatus 1532: "+ paymentStatus);
Log.e(TAG, "userType 1530: "+ userType);
中的數據記錄是舊數據。 這是我的日誌:
E/MAINACTIVITY: paymentStatus 1700: 1
E/MAINACTIVITY: userType 1700: monthly_0
....
E/MAINACTIVITY: paymentStatus 1532: 0
E/MAINACTIVITY: userType 1530: 0
我該如何解決這個問題?提前感謝你!
您應該使用提交或應用 –
如果我同時使用它們,是否有問題? –
是的,其中一個是同步的,另一個是異步的。另外android建議使用apply()(同步),如果你正在使用多線程,並且你正在使用main.thread,你可以使用commit。 –