當用戶跳到我的應用程序的另一個頁面(活動)時,我需要保存我的主要活動的一些變量。官方引用(http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState)被提供做使用下面的代碼保存持久狀態:試圖保存喜好(根據官方的Android參考)導致錯誤
public class CalendarActivity extends Activity {
...
static final int DAY_VIEW_MODE = 0;
static final int WEEK_VIEW_MODE = 1;
private SharedPreferences mPrefs;
private int mCurViewMode;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences mPrefs = getSharedPreferences();
mCurViewMode = mPrefs.getInt("view_mode" DAY_VIEW_MODE);
}
protected void onPause() {
super.onPause();
SharedPreferences.Editor ed = mPrefs.edit();
ed.putInt("view_mode", mCurViewMode);
ed.commit();
}
}
當我實現了這個部分代碼到我的應用程序(有點不同,而不是ed.putInt我使用ed.putBoolean)並運行它,我在LOGCat中出錯。
10-21 15:00:42.956:ERROR/AndroidRuntime(26590):致命異常:主 10-21 15:00:42.956:ERROR/AndroidRuntime(26590): 了java.lang.RuntimeException:無法暫停活動 {com.example.android.Pitbul/com.example.android.Soft.Commander}: java.lang.NullPointerException 10-21 15:00:42.956: ERROR/AndroidRuntime(26590):at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2731) 10-21 15:00:42.956:ERROR/AndroidRuntime(26590):at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2678) 10- 21 15:0 0:42.956:ERROR/AndroidRuntime(26590):at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3259) 10-21 15:00:42.956:ERROR/AndroidRuntime(26590):at android.app。 ActivityThread.access $ 1600(ActivityThread.java:132)10-21 15:00:42.956:ERROR/AndroidRuntime(26590):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1042) ... 10-21 15:00:42.956:ERROR/AndroidRuntime(26590):造成者: java.lang.NullPointerException 10-21 15:00:42.956: ERROR/AndroidRuntime(26590):at com.example.android。 Soft.Commander.onPause(Commander.java:355)10-21 15:00:42.956:ERROR/AndroidRuntime(26590):at android.app.Activity.perfo rmPause(Activity.java:4032)10-21 15:00:42.956:ERROR/AndroidRuntime(26590):at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1337) 10-21 15:00:42.956 :ERROR/AndroidRuntime(26590):在 android.app.ActivityThread.performPauseActivity(ActivityThread.java:2708) 10-21 15:00:42.956:ERROR/AndroidRuntime(26590):... 12更
因此,錯誤發生在 SharedPreferences.Editor ed = mPrefs.edit();串。
爲什麼發生這種情況?我需要解決這個問題?我真的需要保存一些變量,並在用戶返回主活動屏幕時讀取它們。