私は今、何日も解決策を探しています。解決策さえないかもしれません。
何が起こるかは次のとおりです。ユーザーがベッドから出るように、ユーザーのアラームをスケジュールするアプリケーションを取得しました。アラームが「常に」鳴るようにすることは非常に重要です。
アラームを鳴らすには、AlarmManager を使用します。これにより、スケジュールされた時間にインテントが実行されるようにスケジュールされます。これは、アプリケーションが開いているか、戻る/ホームボタンで閉じているときに正常に機能します。
[強制終了] オプションを使用してアプリを閉じると、Alarm Manager のアラームがシステムからクリアされ、アラームが鳴りません。
私はすでに次のことを試しました:
- START_STICKY サービス
- DefaultUncaughtExceptionHandler - アプリを強制終了するためにキャッチされる例外がないため、機能しません。
- ブロードキャスト レシーバ - 問題は、削除されるアラームにあります。
誰かが AlarmManager クラスで同じ問題を経験したことがあるかどうか、またこの問題を解決するための解決策または代替手段を見つけたかどうか疑問に思っています.
ps 次のような Alarm Manager アラームを作成しています。
Intent myIntent = new Intent(getApplicationContext(), CheckAlarmService.class);
PendingIntent pendingIntent = PendingIntent.getService(getApplicationContext(),
1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getApplicationContext().getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
int daysTillAlarm = AlarmHelper.calculateDaysTillAlarm(alarm);
calendar.add(Calendar.DATE, 0);
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
編集:
この問題を抱えているのが私だけではないかどうかを確認するために、よく使用されている目覚まし時計をいくつかダウンロードしました。彼らは皆、私と同じ行動をしているようです。とりあえず置いておきます。それらも評価が高いです。
それでも、この問題の解決策がある場合は、知りたいです!