読者です 読者をやめる 読者になる 読者になる

夢とガラクタの集積場

落ちこぼれ三流エンジニアである管理人の夢想=『夢』と、潰えた夢=『ガラクタ』の集積場です。

画面の縦横を切り替えてもonDestroy等が呼ばれない方法

昨日に引き続き。

あるんじゃないか、と思って調べていた
『画面の縦横を切り替えてもonDestroyが呼ばれない方法』ですが、
案の定ありました。

記述としては、AndroidManifest.xmlに下記のように記述すればいいようです。

===
       
            android:label="@string/app_name"
            android:configChanges="orientation|keyboardHidden"> ★この行★
===

上記の記述をすることによって、
orientation(向き切替)、keyboardHidden(キーボード収納)をした際に
Activityが再生成(onDestroyとか)がされなくなるようです。

代わりに「onConfigurationChanged」というメソッドが呼ばれるので、
必要ならば上記のメソッドに処理を入れ込めばいいそうな。

尚、本来はkeyboardHidden(キーボード収納)を設定する必要が無いような
気がするのですが、keyboardHiddenを外してみると、
一部のフィールドが初期化されてしまって切替時にNullPointerExceptionが発生するため、
設定している状態です。

ちなみに詳細はAndroid:Activityのページにありました。