[解決済み] onSaveInstanceState()とonRestoreInstanceState()は一体いつ呼び出されるのですか?
質問
次の図( 公式ドキュメント より) は、よく知られた ライフサイクル を記述しています。
一方、アクティビティがシステムによって破棄される場合(例えばメモリの再利用が必要なため)、アクティビティの状態は、時には自動的に
保存され、復元されます。
メソッドによって
onSaveInstanceState()
と
onRestoreInstanceState()
というように、次の図(同じく
公式ドキュメント
):
私が知っているのは
onSaveInstanceState()
は
と呼ばれるとは限りません。
は、アクティビティが破壊されようとしているときに呼び出されるとは限りません。例えば、ユーザーが"back"ボタンを押したために破壊される場合、アクティビティの状態は保存されません。しかし、状態
は
が保存され、復元され
onSaveInstanceState()
/
onRestoreInstanceState()
と呼ばれるようになる。
いつ呼ばれるのか
?
例えば、上の図によると
onRestoreInstanceState()
が呼び出される前に
onStart()
の前、あるいは後に
onStart()
の前に
onResume()
の後、または
onResume()
. 同様に、いくつかの可能性が
onSaveInstanceState()
. では、これらは具体的にいつ呼ばれるのでしょうか?
理想を言えば、私が欲しいのは アクティビティーのライフサイクルの状態とセーブ/リストアメソッドを示す結合図 というもので、もしそれが存在するならば。
どのように解決するのですか?
について ドキュメント :
void onRestoreInstanceState (Bundle savedInstanceState)
このメソッドは
onStart()
とonPostCreate(Bundle)
.void onSaveInstanceState (Bundle outState)
呼び出された場合、このメソッドは Build.VERSION_CODES.P で始まるプラットフォームを対象とするアプリケーションの onStop() の後に発生します。以前のプラットフォームのバージョンを対象とするアプリケーションでは、このメソッドは onStop() の前に発生し、 onPause() の前か後かについての保証はありません。
関連
-
[解決済み] FragmentのsetRetainInstance(boolean)を理解する。
-
[解決済み] 匿名)内部クラスを使用することがリークセーフとなるのは、具体的にどのような場合ですか?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] 複数のフィルタを持つBroadcastReceiverか、複数のBroadcastReceiverか?
-
[解決済み] react nativeアプリのバージョン番号を更新する方法
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio
-
[解決済み] 文字列リソースにHTML?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] ViewPager2でスワイプを無効にするには?