Fusion IP-Phone Smart の公式アプリ SMARTalk でプッシュ着信を有効にしているとき、通知アイコンが青(プッシュ可能)から黄(登録中)へ、実際の通信状況とは無関係に変わってしまう問題がある。この問題はメモリがやや不足したときに発生しやすい様に見えるのだが、実は意図的に起こす方法がある。

Android 4.0 以降では、ナビゲーションバーの「最近のアプリ」ボタンか、ホームキーの長押し(ハードキーを持つ機種の場合)で、最近使ったアプリの一覧が表示される。ここでアプリを画面の外に弾き出す様に操作すると、そのプロセスを終了させる(単に一覧から除くだけでなく)ことができる。

SMARTalk を一度起動させてホームキーなどでバックグランドに回し、ステータスバーのアイコンが青になるのを確認する。ここで、システム設定のアプリ→「実行中」タブを見ると、SMARTalk は1個のプロセスと1個のサービスを起動させている。そのまま最近のアプリ一覧から SMARTalk を弾き出してみよう。すると、その数秒後に、アイコンが青から黄になってしまう。1個のプロセスは自動的に再起動するが、アイコンは黄色のまま元に戻らない。てことは、どうもアクティビティ(簡単に言うとアプリの目に見える部分を持つ構成要素)が属するプロセスの状態と連動している様に見える。

Android では、バックグラウンドタスクの生存はメモリに空きが少しでもある限り保証されるわけではない。メモリ不足が原因でシステムや最前面のアプリが動きにくくならない様に、Android は古いプロセスをいつかは除去する。長時間使われていないアクティビティは重要度が低いと見なされ、強制終了されやすい。だからおそらく、他のアプリでメモリを食う様な操作をしたときに SMARTalk のアイコン問題が発生しやすいのではないかと思う。

で、この推測が当たっていれば、いわゆる「タスクキラー」系のアプリで他のアプリを早めに終了させつつ、SMARTalk をその対象から除外すれば、特にメモリの小さい端末では、発生の頻度をいくらか下げる効果が(理屈の上では)期待でき(ないこともないと思われ)る。まあ、根本的には実装を改善してもらうしかないのだけど……、次のアップデートはいつでしょうね。