Java - Android SDK - savedInstanceState&的onSaveInstanceState

时间:2016-07-03 12:21:09

标签: java android

我正在尝试保存计数器的状态(mCreate,mRestart等),并在建立onCreate()方法后加载它们。出于某种原因,只要调用onCreate(),它总会恢复为“0”。

// Use these as keys when you're saving state between reconfigurations
private static final String RESTART_KEY = "restart";
private static final String RESUME_KEY = "resume";
private static final String START_KEY = "start";
private static final String CREATE_KEY = "create";

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Has previous state been saved?
    if (savedInstanceState != null) {           
        this.mCreate = savedInstanceState.getInt(CREATE_KEY);
        this.mRestart = savedInstanceState.getInt(RESTART_KEY);
        this.mStart = savedInstanceState.getInt(START_KEY);
        this.mResume = savedInstanceState.getInt(RESUME_KEY);
    }
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {    
savedInstanceState.containsKey(RESTART_KEY);
savedInstanceState.containsKey(RESUME_KEY);
savedInstanceState.containsKey(START_KEY);
savedInstanceState.containsKey(CREATE_KEY);
}

2 个答案:

答案 0 :(得分:1)

你应该致电

savedInstanceState.putInt(RESTART_KEY, _your_key_);

在" onSaveInstanceState"梅索德

答案 1 :(得分:0)

我查了this。我找不到任何功能"包含KEY"在捆绑类。不过我认为你应该使用

    savedInstanceState.putString("restartkey",RESTART_KEY);
    savedInstanceState.putInt("resumekey",RESUME_KEY);
    savedInstanceState.putBoolean("startkey",START_KEY);
    savedInstanceState.addString("createkey",CREATE_KEY);