2011/01/28

Android エミュで画面を回転 Ctrl + F12

 
Android 実機を初めて触った。
 
そしてよく 回転する 事実を知った。回転はエミュレーター上で全く検証して
おらず、回転させると画面表示がなくなる。
 
エミュレーター上で回転させるには Ctrl + F12
 
 
調べてみると OnDestroy() 毎回呼ばれる
 
SurfaceDestroy() や OnPause() / onStop() は色んなタイミングで呼ばれる事は
確認取れてたので、いつでも再開できる設計にしてたのだが…
 
アクティビティの終了を示す OnDestory() がこれ程頻繁に呼ばれるとは
思わなかった。
 
どうしようか。
 
 
onDestory() 呼ばれても静的変数( static )は有効なのですが、
動的変数( dynamic )は破棄される。
 
画面回転するたびに、VirtualMachine を再起動する設計は嫌過ぎる。
 
 
GUI コンポーネントは onSaveInstanceState() / onRestoreInstanceState() で
いけるみたいだが、SurfaceView も同じ?
 
Parcelable 自体は Java のシリアライズみたいなもので、大きな違いは永続化が
目的ではないとか。
 
 
対策を施さないと… static の SurfaceView の場合、getHolder() で再取得した
オブジェクトに lockCanvas() を行うと NULL が返る。
 
それもそのハズ。surfaceCreated() が呼ばれない…調べるか。

0 件のコメント:

コメントを投稿