ページ 11

【Android】ロックしてもアプリを終了しないようにする

Posted: 2012年12月14日(金) 21:31
by みけCAT
Eclipse Version: 3.7.2
Android端末: docomo SC-03D (Galaxy SII LTE)

Tree PuzzleをAndroidに移植しようとしています。
今の実装では、ゲーム中にホームボタンを押してホームに戻ったり、電源ボタンを押してロックしたりすると、
そのままアプリが終了してしまいます。
特に電源ボタンを押すと、一瞬端末の動作がおかしくなります。(画面が残ったり、ホームのアイコンがしばらく出なかったり)
どのようにすればホームボタンや電源ボタンを押しても終了しないようにできますか?

SurfaceViewを用いてゲームを作っています。
ゲーム内の終了ボタンで終了させるため、スレッドのループを抜けたらKillProcessしています。
再現するプロジェクトを添付します。

Re: 【Android】ロックしてもアプリを終了しないようにする

Posted: 2012年12月14日(金) 23:00
by ISLe
Activityクラスで構成されるAndroidアプリでは、アプリを終了しなくすることはできません。
例えば、スマホを傾けて画面の向きが変わるときにもActivityが再起動される仕組みになっています。

終了前の状態を記録して、再起動後復元する仕組みはアプリケーション側で実装することになります。
ネットで画面の向きの変更に対応するサンプルプログラムを探せばいくつかの方法が見付かると思います。


KillProcessしたらVMごと強制終了すると思うので悪影響ありそうな気がします。

Re: 【Android】ロックしてもアプリを終了しないようにする

Posted: 2012年12月15日(土) 08:41
by みけCAT
http://www.techdoctranslator.com/androi ... me-changes
ここのonRetainNonConfigurationInstanceを使用する方法でほぼうまくできました。
(「ほぼ」の部分はつぎのトピックで質問します)
ありがとうございました。