実行時間の長い Android サービス (単純なログ記録を行う) を開始および停止するための 1 つのボタンを備えた単純な Android アクティビティがあります。サービスを開始したらすぐにアプリ (Activity) を閉じます。その後、サービスはバックグラウンドで無期限に実行されます。
しかし、そうではありません。ランダムに、この Service が属する Application オブジェクトが OS によって再作成され、その後、私の Service も再作成されます。そのため、Service が onStartCommand を呼び出すだけでなく、最初に onCreate を呼び出して、新しい Service を作成します。古いものに何が起こるかわかりません。ただ消えてしまいます - onDestroy は呼び出されません。
私はサービスを START_STICKY として実行しています。メインの UI スレッドをまったく使用していないため、問題はないはずです。何が問題なのか理解できません。
サービスは正常に実行され、ブームになり、私のアプリケーションは onCreate を取得し、私のサービスは onCreate と onStartCommand を取得し、ロギングの途中だった古いサービスは通知や警告なしに消えます。新しいサービスがロギングを開始します。1 つしかないはずの切断されたログがたくさんできてしまいます。