Browsing articles in "Hacks"

画面回転時にonDestroyさせない方法

4月 20, 2011   //   by @mhidaka   //   Hacks  //  No Comments

Androidでは端末を回転させるとActivityは一度破棄されてしまいます。問題のないケースも多いですが、メディアの再生、ゲームなどシビアなアプリケーションでは内部状態onStop/onDestroyを経由すること自体がネックとなります。少しテクニカルですが、画面回転時の処理を独自実装する方法を紹介します。

サンプルコードはGoogleCodeのこちらで公開しています

センサ、独自ビューを組み合わせているため、本記事の前に以下の解説を確認することをお勧めします。

画面回転処理の独自実装の概要

画面回転を独自に対応する一番大きなメリットは回転タイミングを自分で制御できるため、GCやActivityの再生成によるパフォーマンスの影響が抑えられるということです。(おまけとしてAndroid標準で対応していない上下さかさまにも対応できる)
反対に通知バーなどは一緒に回転しない、回転の契機、ロジックが難しくなるといったデメリットも存在します。
今回はAndroidの傾きセンサの値をみて、Viewを回転、表示を切り替えました。おおまかな手順は以下の通りです

  1. 標準のOrientationを固定値にする(android:screenOrientation=”portrait” )
  2. センサから値を読み取り、画面の向きを決定する
  3. Viewを回転し、表示を更新する

Androidのライフサイクル

Activityのライフサイクルのおさらいです。

画面回転時、Activityはライフサイクルに従い、一度onStopを経由しonDestroyされます。回転後、onCreateから画面を再構築します。

Read more >>

ページ:«12

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です