2016-07-03 5 views
0

私はカウンター(mCreate、mRestart ...など)の状態を保存し、onCreate()メソッドが確立されたらそれらをロードしようとしています。何らかの理由で、onCreate()が呼び出されるたびに常に「0」に戻ります。Java - Android SDK - savedInstanceState&onSaveInstanceState

// 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); 
} 

答えて

0

私はthisをチェックし、 "onSaveInstanceState" Methodeの

+0

これは私がそれを修正するためにしたものです。このリンクはすべてを説明しました:答えはこのリンクで説明されました: https://developer.android.com/training/basics/activity-lifecycle/recreating.html – Shark1103

0

savedInstanceState.putInt(RESTART_KEY, _your_key_); 

を呼び出す必要があります。バンドルクラスに "containsKEY"という関数が見つかりませんでした。しかし、私はあなたが使用する必要がありますと思う

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

このコマンドを柔軟に使用する方法を教えてくれてありがとう。私はそれを修正した。 – Shark1103

関連する問題