私のアプリがAlarmManagerを使用して設定したアラームは、次の場合にクリアされます。
- ユーザーが設定でアプリを強制終了します。
- いくつかのタスクキラーアプリが私のアプリプロセスを自動キルしました。
- フロントアプリ用のメモリが必要だったため、Android自体が私のアプリを殺しました。
どうすれば検出できるのか教えてください。むしろ、これらすべてのケースが私のアラームに影響を与えないように、私のアラームを設定する方法。
私のアプリがAlarmManagerを使用して設定したアラームは、次の場合にクリアされます。
どうすれば検出できるのか教えてください。むしろ、これらすべてのケースが私のアラームに影響を与えないように、私のアラームを設定する方法。
ユーザー強制が設定でアプリを閉じます。
はい、これでアラームがクリアされます。
一部のタスク キラー アプリがアプリ プロセスを自動強制終了しました。
これは、Android の最近のバージョンではアラームをクリアしません。
フロントアプリにメモリが必要なため、Android自体がアプリを殺しました。
これはアラームをクリアしません。
どうやって検出するのか教えてください。
アラームが最後にいつ発生したかを記録しておきます (例: SharedPreferences
)。コードが実行されたら (たとえば、LAUNCHER
アクティビティが開始されたとき)、最終アラーム時刻を確認します。かなり前のことである場合は、アラームがクリアされていることがわかっているため、スケジュールを変更する必要があります。
むしろ、これらすべてのケースがアラームに影響しないようにアラームを設定する方法です。
これは不可能です。アラームが実際にクリアされるケースはほとんどなく (再起動と強制停止)、そのような場合にアラームがクリアされないようにするためにできることは何もありません。