2016-06-10 93 views
0

按照documentation,一個寬鬆的日曆可以轉換超過一年的年底到明年的某個日期止:calendar.isLenient()不能正常工作

當日歷是寬鬆它接受比它產生的更廣泛的字段值。例如,一個寬鬆的GregorianCalendar解釋MONTH == JANUARY,DAY_OF_MONTH == 32月1

但我沒有得到它的工作,我在調度的PendingIntent得到所謂的3周,它工作得很好,直到52周來臨,它立即被稱爲而不是在3周內

Calendar currentCal = Calendar.getInstance(); 
Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); 
    calendar.set(Calendar.HOUR, 13); 
    calendar.isLenient(); 
    calendar.set(Calendar.WEEK_OF_YEAR, currentCal.get(Calendar.WEEK_OF_YEAR) + 2); 

我做錯了什麼?

+0

您是否嘗試在最後一組之後打印日期?這可以很容易地告訴你日曆是否設置正確。在我的快速測試中,一切正常。也許它會指向執行事件的調度程序內部的問題。 –

+0

查看'set'方法的javaDocs - 它表明'該值不被該方法解​​釋,無論寬鬆模式如何.'嘗試與'clear'方法結合使用 –

+0

因此它隨機地剛開始工作時,'isLenient()'實際上不起作用,因爲無論如何=) –

回答

0

如果有人面臨此問題,請嘗試重建項目,從手機中刪除應用程序並重新運行,爲我工作!