1. ホーム
  2. android

[解決済み] Android AlarmManager - RTC_WAKEUP vs ELAPSED_REALTIME_WAKEUP

2023-04-07 02:06:03

質問

の違いについて教えてください。 AlarmManager.RTC_WAKEUPAlarmManager.ELAPSED_REALTIME_WAKEUP ? 私はドキュメントを読みましたが、まだ、一方を他方よりも使用することの意味をよく理解していません。

コード例です。

    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
                     scheduledAlarmTime, 
                     pendingIntent);

    alarmManager.set(AlarmManager.RTC_WAKEUP, 
                     scheduledAlarmTime, 
                     pendingIntent);

2行のコードの実行はどのように違うのか?その2つのコードはいつ相対的に実行されるのでしょうか?

ご協力ありがとうございます。

どのように解決するのですか?

AlarmManager.ELAPSED_REALTIME_WAKEUP タイプは、起動時からアラームをトリガーするために使用されます。

alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 600000, pendingIntent);

は実際にアラームを鳴らす デバイスが起動してから10分後に .

デバイスの稼働時間を測定するために、デバイスの起動時に稼働を開始するタイマーがあり、これはデバイスの稼働時間に応じてアラームを作動させるタイプです。

ところです。 AlarmManager.RTC_WAKEUP は、時計の時刻に従ってアラームを作動させます。例えばそうすると

long thirtySecondsFromNow = System.currentTimeMillis() + 30 * 1000;
alarmManager.set(AlarmManager.RTC_WAKEUP, thirtySecondsFromNow , pendingIntent);

一方、これはアラームの引き金になります。 今から30秒後 .

AlarmManager.ELAPSED_REALTIME_WAKEUP 型は AlarmManager.RTC_WAKEUP .