2011-08-28 13 views
0

因此,我已經編寫了用於讓AlarmManager在一週中的指定日期觸發的代碼。麻煩的是,我無法坐下來等待明天彈出通知,看看我的代碼是否正確!有人可以看看,看看我寫的是否有意義嗎?將鬧鐘管理器設置爲在一週中的某個特定日期觸發的代碼(android)

(天是一個int(1-7代表週日到週六))

if(calendar.get(Calendar.DAY_OF_WEEK) != day) 
    { 
     if(day > calendar.get(Calendar.DAY_OF_WEEK)) 
     { 
      calendar.add(Calendar.DAY_OF_MONTH, day - calendar.get(Calendar.DAY_OF_WEEK)); 
     } 

     if(day < calendar.get(Calendar.DAY_OF_WEEK)) 
     { 
      calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
      if(day > 1) 
      { 
       calendar.add(Calendar.DAY_OF_MONTH, 7 - (calendar.get(Calendar.DAY_OF_WEEK) - day)); 
      } 
     } 
    } 

回答

1

爲您的代碼編寫單元測試,並使用一週中的不同日期對其進行測試。然後你可以確定你正在計算報警火災時間。 AlarmManager本身可能存在任何其他問題,這是您無法控制的。

+0

你可以進入更多的細節?我想我可以打印日曆類的一些屬性,可以給我答案? –

+0

我做到了,看起來像我的代碼工作得很好。感謝指針! –

+0

我在考慮更多自動化[JUnit](http://junit.org/)測試,您可以在其中比較期望值與實際輸出。如果您真的測試了足夠多的輸入以涵蓋所有可能的情況,那麼使用日誌記錄進行手動測試也可以。 –

0

如何更改日期/時間在手機上,使之認爲這是報警的一天嗎?

相關問題