複数のアクティビティで構成されるアプリケーションがあります。アプリケーションが起動すると、以下を使用していくつかのアラームがスケジュールされAlarmManager
、いくつかのサービスが開始されます。
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
a.setInexactRepeating(...)
....
ユーザーがアプリケーションを終了したときに、すべてのサービスが停止し、すべてのアラームがスケジュールされていないことを保証する方法を知りたいです。
onDestroy
問題は、ユーザーがさまざまなアクティビティからアプリケーションを離れることができることです。すべてのアクティビティでメソッドをオーバーライドするという考えは好きではありません。Intent
アプリケーションが終了したときに受け取ることができる既知のものはありますか?
Application
また、Android アプリケーションには、onTerminate
メソッドを使用して から拡張されたクラスを含めることができることもわかりました。
public class MyApplication extends Application {
@Override
public void onTerminate() {
...
}
}
しかし、ドキュメントは非常に明確です。「このメソッドが呼び出されることに依存しないでください。多くの場合、不要なアプリケーション プロセスは、アプリケーション コードを実行せずにカーネルによって単純に強制終了されます」
どんな提案でも大歓迎です。