public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt("x", x);
}
バンドルを保存すると、バンドル変数は正確にどこに保存されますか? どこにも見つからない
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt("x", x);
}
バンドルを保存すると、バンドル変数は正確にどこに保存されますか? どこにも見つからない
まあ、あなたがそれを見つけるとは思わないし、どこかで直接参照されるとは思わない.
ただし、そのコンテンツはonCreate(savedInstanceState)
、アクティビティが再作成されたときに利用可能になります。ドキュメントから引用:savedInstanceState: If the activity is being re-initialized after previously being shut down then this Bundle contains the data it most recently supplied in onSaveInstanceState(Bundle). Note: Otherwise it is null
そのコンテンツを探す別の場所はonRestoreInstanceState(savedInstanceState)
android リファレンスに加えて、ソース コードを読んで、ここで何が起こったのかを理解することができます。
protected void onSaveInstanceState(Bundle outState) {
outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState());
Parcelable p = mFragments.saveAllState();
if (p != null) {
outState.putParcelable(FRAGMENTS_TAG, p);
}
getApplication().dispatchActivitySaveInstanceState(this, outState);
}
ソース コードでは、状態が によって管理されることは明らかApplication
です。アクティビティが破棄されると、アプリケーションは関連する状態を保存するのに役立ちます。しかし、アプリケーションが強制終了されたという状況に遭遇した場合、すべての状態が失われていることがわかります。したがって、すべての状態はファイルのような設定ではなく、メモリに保持されると思います。
intに保存するには、int、string、または必要なものを設定する必要があると思います。例を示しましょう
public void onSaveInstanceState(Bundle state){
super.onSaveInstanceState(state);
Int i = 1;
state.putInt("s",i);
}