1

アプリケーションを閉じたときにフォアグラウンド サービスを開始したいと考えています。

OnStop() を試してみましたが、複数回トリガーでき、インスタンスを 1 つしか実行できないため、お勧めできません。

OnDestroy() を試しましたが、アプリ全体で 1 つのアクティビティしか使用しておらず、ほとんどの場合 SWIPE で強制終了されているため、単にトリガーされません。

アプリケーションが強制終了または終了したことを検出する方法はありますか?

ありがとう!

4

2 に答える 2

1

何度起動しても、サービスのインスタンスは 1 つだけ実行されます。クライアントがサービスを開始するたびに、onStartCommandメソッドが起動します。 return Service.START_STICKY;アプリが終了した後もバックグラウンドでサービスを実行し続けることができます。ただし、物事が忙しくなり、電話がメモリを必要とする場合、サービスは強制終了され、@Onur が保守的な定期的なAlarmManager意図で提案するようにサービスを再起動する必要があることに注意してください。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    // the service is started so after all clients are unbound it stays
    // running
    return Service.START_STICKY;
}
于 2014-05-29T20:18:01.590 に答える