タスク マネージャーまたは他のアプリからアプリケーションが強制終了されたときにアクション/イベントを実行したい。アプリケーションが強制終了されたときにアクションを実行するものはありますか? アプリケーションがサービスのようにバックグラウンドで実行されています。アプリケーションを終了すると、メイン サービスが停止します。また始めたいです。
3 に答える
いいえ、アプリケーションが別のプロセスによって強制終了されたかどうかを知るための信頼できる方法はありません。アプリを「強制終了」することの全体的なポイントは、コードを実行させずに、できるだけ早くアプリを終了することです。
==本番アプリケーションで実際に次の提案を使用しないでください。これらは純粋に潜在的な技術的ソリューションとしてここにありますが、一般的にエンドユーザーのデバイスで実行されているアプリには適していません。==
IBinder.linkToDeath()
プライマリアプリケーションのモニターとして機能するセカンダリアプリケーションから使用できる場合があります。ただし、セカンダリアプリもインストールするようにユーザーを説得する必要があります。それができれば、2つのアプリの間に両側監視を確立し、2つ目が強制終了された場合に、一方をもう一方を再起動させることができます。
また、頻繁に発生するアラームを設定してAlarmManager
、アプリケーションが強制終了された場合にアプリケーションを再起動することもできます。ただし、アラーム期間が長すぎると、アプリが実行されていない期間が発生するリスクがあります。また、期間が短すぎると、アプリがGoogle PlayストアでGoogleによって許可されない可能性が高く、電話(JB +)でのマルウェアアプリの分析が開始される可能性があります。また、頻繁に開始されるアラームは継続しますデバイスが目覚め、バッテリーを非常に速く消耗します。
私は同じことを探しましたが、私が見つけた答えは次のとおりです。いいえ、アプリケーションは移動しませんOnDestroy()
。
一部のプロセスを強制終了すると、それを強制終了するだけなので、すぐに機能しなくなります。アプリケーションに送信されるイベントはありません。