2011年7月13日水曜日

Androidの考え方

■OnDestroyが呼ばれても、プロセスがなくなるとは限らない
ActivityのライフサイクルでOnDestroyが呼ばれても、プロセスは残る。
理由は、プロセス生成の電力コストを下げるため、できるだけ再利用したいからだそうだ。

いつアプリのプロセスは終了するのか。
 LowMemoryKillerというカーネルのドライバがメモリ不足を検知したとき、
使われていないアプリを停止させる。この時である。

開発時に気をつけること、
staticクラス変数は、LowMemoryKillerがプロセスを停止するまで、維持されること。
逆の発想では、LowMemoryKiller次第で、いつでもstaticクラス変数が破棄されること。

プロセスやstaticクラス変数が、処理中に破棄されては困るなら、
サービスとして作成するのがシンプルな方法の一つである。

0 件のコメント:

コメントを投稿