Managing the Activity Lifecycle part4 | Android開発記録雑記

Android開発記録雑記

パソコン中級者ぐらいの私が
スマホアプリの開発をしてみようと思い立ち
Androidで動くアプリ開発過程をこれから書き記していきます。

さてさて今回は Managing the Activity Lifecycle の最終回
Recreating an Activity をやってきます。

今回は、アクティビティ自体のライフサイクルの番外編というか
一度破棄された後の状態復帰の話です。

どういう状況でそういうことが必要になるかと言うと

 複数の画面遷移を持つアプリで前後の画面の状態を残しておきたい
 画面を縦横に回転させる


このようなときです。
特に後者は意外でした、スマホアプリの縦横変換て
一度画面を破壊して作り直してるんですね。


では、具体的な方法をば

まず、復帰前に保存する方法から
onSaveInstanceState() をオーバーライドします。

そしてこのメソッドの引数にもなっているバンドルオブジェクトに
保存したいデータを格納します。

public
void onSaveInstanceState(Bundle savedInstanceState) {
 
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);

(公式HPより)

このメソッドはOnDestroy() の直前にシステムによって呼び出されます。
そして、一度破棄され再びOnCreate() が呼び出されたとき

onRestoreInstanceState()
 を呼び出して状態を復帰させます。
中身はonSaveInstanceState() の逆をやってると思っていいでしょう。

次回は今回ちょっと疑問に感じたので
バンドルオブジェクトについて調べます。