簡體   English   中英

Android AlarmManager 在錯誤的時間開始響鈴

[英]Android AlarmManager starts ringing on wrong time

我正在嘗試創建一個警報應用程序。 我正在使用時間選擇器從用戶那里獲取鬧鍾時間設置

我研究了以下評論,但找不到解決方案:

警報在錯誤的時間開始

AlarmManager 在錯誤的時間觸發

AlarmManager 在錯誤的時間運行

當我將鬧鍾時間設置在當前時間之前時,它會立即響起。 但是,如果鬧鍾時間設置在當前時間之后,則可以正常工作。

以下是我的代碼...

calendar.set(
             calendar.get(Calendar.YEAR),
                   calendar.get(Calendar.MONTH),
                   calendar.get(Calendar.DAY_OF_MONTH),
                   timePicker.getHour(),
                   timePicker.getMinute(),
                   0
           );
       AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(this, AlarmReceiver.class);
        PendingIntent pendingIntent=PendingIntent.getBroadcast(this,0,intent,0);
    alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);

如果用戶在當前時間之后設置鬧鍾,則可以正常工作。 但是,如果時間設置當前時間之前(下一天),則響鈴會立即開始。

請幫我解決這個問題。 提前致謝!

來自 AlarmManager 文檔

如果規定的觸發時間已經過去,則立即觸發警報。

您的日歷設置為當天,因此當時間設置為當前時間之前時,鬧鍾會立即響起。 使用未來日期時,獲取該日期和時間的日歷,然后設置鬧鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM