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);
我做錯了什麼?
您是否嘗試在最後一組之後打印日期?這可以很容易地告訴你日曆是否設置正確。在我的快速測試中,一切正常。也許它會指向執行事件的調度程序內部的問題。 –
查看'set'方法的javaDocs - 它表明'該值不被該方法解釋,無論寬鬆模式如何.'嘗試與'clear'方法結合使用 –
因此它隨機地剛開始工作時,'isLenient()'實際上不起作用,因爲無論如何=) –