Androidアプリ開発の最近のブログ記事

Androidアプリのうち常駐serviceのテストについて、ちょっとしたノウハウを共有します。

品質に気を使う人であれば、serviceプロセスの状態とイベントのマトリクスを網羅するように試験項目を抽出していると思いますが、同じ状態でも

A: ActivityからStartCommandで呼びだされてたどりついた状態X
B: システムにkillされて、再起動されたあとにたどりついた状態X

とは区別して、試験をすることが肝要です。 システムがserviceプロセスをkillすると、プロセスの変数値も全部リセットされます。 なので、Aでは正常処理できたイベントでも、Bでは正常処理できない、ということがおきがちです。

serviceがAの状態Xなのか、Bの状態Xなのかは、端末⇒設定⇒実行中のサービスでプロセスのメモリ使用量でだいたい推察できます。 Bの状態では、メモリ使用量がすごく低くなっています。 

Serviceは常駐プロセスではないです。むしろ、自動再起動プロセスと認識すべき。システムにしょっちゅうkillされます。

特に、BroadcastReceiverでIntent受信処理をするようなServiceを作成する場合には、要注意。 システムによってServiceが再起動された場合には、OnCreate()コマンドはよばれても、OnStartCommandは呼ばれません。 なので、BroadcastReceiverを登録するコードはOnCreate()に書く必要があります。

カテゴリ

ウェブページ

Powered by Movable Type 5.13-ja

このアーカイブについて

このページには、過去に書かれたブログ記事のうちAndroidアプリ開発カテゴリに属しているものが含まれています。

次のカテゴリはフレスポなうです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。