branch4 Blog

Internet development with every single possibility.

[Android] onCreateメソッドの引数の意味

| Comments

Android開発やってみてるわけですが、わからないことだらけで困ってます。

今日は、

    
    onCreate(Bundle savedInstanceState)
    
の、引数のところって何? という疑問でございます。

まぁググれば沢山出てくるんですが。

一番は、 ここ 。当たり前か。
日本語だと ここ がわかりやすかったです。

僕も忘れないように反芻すると・・・
    Androidでは、こんなときに、Activityが破棄されてます。
  • 画面を縦方向から横方向に持ち替えた時
  • バックグラウンドに入ってしばらく経った時
  • システム容量が足りなくなった時
  • ユーザがアプリを終了した時
などなど。

ユーザが自分で閉じた時は別らしいけど、少なくとも、下記2パターンにおいては、
勝手にActivity破棄されると残念な気持ちになります。

  • 画面を縦方向から横方向に持ち替えた時
  • システム容量が足りなくなった時
だって、こっちは悪くないもの。
そんなことはGoogleさんも百も承知のようで、破棄前に、

onSaveInstanceState()

を呼ぶらしい。で、その時の状態が、key/valueペアになって、Bundleクラスに保存されて・・・

onCreateメソッドの引数でわたってくる、ということのようでした。

確かに、縦から横に持ち替えた時、layoutも変わるし、同じ情報じゃ画面再構築できないかもしれないし、再読み込み必要です。

ちなみに、onCreateで渡ってくるので、ここでは処理しないといけないのと、

onRestoreInstanceState()が、Activity cycleでいうと、onStart()の後に呼ばれる(ここ 参照)ので、処理いれとかないと、onStop()->onRestart()のフローでの復帰時にうまくいかなそうな予感。

ちなみに、Bundleのメソッドたちは、 ここ参照。

とりあえず、そんなメモでした。

Comments