2016-12-11 4 views
1

さまざまな時期にユーザーに通知するようにアラームを設定しました。私は、 "adbのシェルdumpsysアラーム" をチェックして、彼らはなぜAndroidのアラームマネージャはアラームを忘れていますか?

RTC_WAKEUP#2のように見える:アラーム{433c7328タイプ0 com.app.package} タイプ= 0 whenElapsed = 89936417 = + 9h8m5s417msウィンドウ= -1 repeatInterval = 0のカウント= 0 操作= PendingIntent {42e8e7f8:PendingIntentRecord {42deb070 com.app.package broadcastIntent}}

時には彼らは、彼らは時々、(私は長いテストしていない)に滞在し、少なくとも2日間のために働きます最初の通知が行われるべきでも、「adb shell dumpsys alarm」が私のエントリをもう表示しないうちに、数時間後にすべて消えてしまいます。 (私は2つのデバイス、Android 4.0と4.4でテストしました)

私は、アラームマネージャがデバイスの再起動後にエントリを忘れてしまったことを知っています。私はこのケースを世話し、後で再追加します。しかし、明らかに、アラームマネージャが再起動せずにエントリを忘れる場合もあります。私はこれらのケースとそれらをどう扱うかを知りたい。 AlarmManager

から

答えて

0

このクラスは、システムアラームサービスへのアクセスを提供します。これにより、将来のある時点でアプリケーションを実行するようにスケジュールすることができます。アラームが消えると、登録されたインテントがシステムによってブロードキャストされ、ターゲットアプリケーションがまだ実行されていない場合は、自動的に起動します。登録されたアラームは、デバイスがスリープしている間は保持されます(また、その時間中にデバイスがオフになった場合にデバイスを起動することもできます)が、オフになって再起動されるとクリアされます。
あなたのアプリケーションが強制終了されるか、デバイスが再起動されるまで動作します(最新のリストまたはアプリケーションマネージャからアプリケーションを削除した場合、アプリケーションを強制終了します。あなたのアプリケーションのAlarmManagerは削除されました。)
アプリがバックグラウンドにある場合、いくつかのケースでアンドロイドはそれを殺してより多くのRAMにアクセスします。

あなたはHow to create a persistent AlarmManagerでアプリケーションを殺すの詳細を読むことができ、かつHow to save Alarm after app killing?

関連する問題