2013-09-25 269 views
0

請幫助我的傢伙我創建鬧鐘項目,我有一個問題。鬧鐘前的鬧鐘

這是我需要在當前時間之前設置鬧鐘的問題,比如現在的時間是下午1:00 pm假設上午10:00,所以基本上它有18小時的剩餘時間和59分鐘的鬧鐘時間之前,問題是一次你會報警只需單擊確定後

    if (setHour < c.get(Calendar.HOUR_OF_DAY) 
          || setHour == c.get(Calendar.HOUR_OF_DAY) 
          && setMinute < c.get(Calendar.MINUTE)) { 

         c.set(Calendar.HOUR_OF_DAY, setHour); 
         c.set(Calendar.MINUTE, setMinute); 
         c.set(Calendar.SECOND, 0); 
         client.setAlarmNotification(c, requestCode); 

        } 

setHour是timepicker以及setMinute設置像上午10點鬧鐘在下午1:00時。請求代碼是唯一的,因爲它來自數據庫的ID(PrimaryKey),所以沒有問題,當你在當前時間之後但當前時間之前報警時,它都可以工作。現在幾天,夥計們請幫我處理這個問題。謝謝你提前

-raphaelle

+0

嗨@raphaelle我不確定,但可能是因爲你正在設置HOUR_OF_DAY。它用於24小時制。所以可能認爲你的時間可能會被通過。因爲它不考慮未來24小時。你可以試試'DAY_OF_ *'參數,讓我知道什麼是確切的問題..看到這個文檔http://developer.android.com/reference/java/util/Calendar.html#HOUR_OF_DAY – nilkash

回答

0

據我所知,你只需要設置報警第二天。

Calendar c = Calendar.getInstance(); 
if (setHour < c.get(Calendar.HOUR_OF_DAY) 
|| setHour == c.get(Calendar.HOUR_OF_DAY) 
&& setMinute < c.get(Calendar.MINUTE)) 
{ 
    c.set(Calendar.HOUR_OF_DAY, setHour); 
    c.set(Calendar.MINUTE, setMinute); 
    c.set(Calendar.SECOND, 0); 
    long time = c.getTimeInMillis(); 
    time = time + 1000*60*60*24; // Add 24h to the date 
    c.setTimeInMillis(time); 
    client.setAlarmNotification(c, requestCode); 
} 
+0

好吧@goodm虐待嘗試您的建議,謝謝 – raphaelle

+0

@nilkash idk如果12小時會做,但生病也試試,謝謝:D – raphaelle

+0

它不工作@goodm像我想它會註冊第二天(明天)。但是當你在你的電話上改變你的時間時,它應該會報警,但在這種情況下不會,因爲它會在第二天設置。任何想法傢伙? – raphaelle

0

將日曆設置爲您希望使用的時間和日期,而不是僅設置時間。

Calendar c= Calendar.getInstance(); 
    c.set(year,month,day,hour,minute); 
    client.setAlarmNotification(c, requestCode); 

注:月0到11而不是1至12

如果你只是想火報警,明天再增加一天壓延機這樣的:

c.add(Calendar.DATE,1); // Add one day to the calendar 

然後你只需要設定時間。

+0

是的,這是一個好主意,但問題是當你改變你的手機上的時間它不會報警因爲你設置了第二天的警報。 – raphaelle

+0

鬧鈴將在您設定時觸發。 'Calendar.getInstance'會返回一個日曆,*設置爲CURRENT日期和時間*,因此只需設置時間,這就是您無論如何都在做的事情,但您過去一直在設置鬧鐘。 – Kuffs

+0

就像我說的那樣,當我把日曆放在日曆上時,它只會在當天註冊,但不會在今天註冊,想象一下,當你設置一個鬧鐘時,上午10點已經是下午1點,所以基本上它應該是明天,但是當你改變你的時間在你的手機上,它不會觸發鬧鐘,因爲它是第二天設置的。 – raphaelle