質問: <背景> あるネットワークのゲートウェイ機器とAndroid端末をケーブルで接続させシリアル通信を行い、 Androidアプリで通信ログを貯めておき、アプリを終了する際にまとめてログをファイルに出力させたい。 アプリはホームボタンタップや他アプリ起動によりバックグラウンドにある状態でも、動作を継続できるようにしたい。 アプリ終了を漏れなく検知してログをファイルに出力させたいが、 マルチタスクボタンをタップ後にアプリが一覧表示されている状態でアプリを終了しても、 onDestroy()がコールされません。 (※追記:コールされる時もある。10回に1,2回ぐらい。) バックグラウンドでも動作させたいのでonPause()がコールされたときのファイル出力では都合が悪いです。 <質問> ・マルチタスクボタンタップ→アプリ一覧表示された状態でアプリを終了させたときに、確実にアプリ終了を検知する方法はありますか? ・検知できなかったとして、ユーザーのマルチタスクボタンタップからの操作による、アプリ終了を行えないようにすることはできますか? →マルチタスクボタンをタップしてもonKeyDownメソッドがコールされないので、できないと思っています。 ・上記それぞれできない場合、理由と仕様が記載している場所をご存知ないでしょうか。 →色々調べると、Androidは不正防止の為、ホームボタンをタップしてもキーイベントを取得できない仕様になっているというような記事は見つけたので、 マルチタスクボタンも同じ話なのかなと思ったりしたのですが、具体的な根拠となる文章を見つけられていないです。 できないならできないでいいのですがその根拠を知りたいです。 ご回答のほど、宜しくお願いします。
回答: たしか、検知できなかったと思います。 そもそも、Serviceで作った方がいいのでは?