2014-10-12 33 views
1

我想在用戶單擊某個按鈕後的特定時間(現在,週日上午12點36分左右)啓動新的意圖。我已經看過所有的日曆類教程,但似乎無法找到最新的錯誤。我測試了沒有日曆功能的代碼,它工作正常。代碼如下:特定日曆設置時間後鬧鐘管理器不會關閉

public void myClickHandler(View view){ 
    switch (view.getId()){ 
    case R.id.button_start: 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.set(Calendar.DAY_OF_WEEK, 0); 
     calendar.set(Calendar.HOUR_OF_DAY, 0); 
     calendar.set(Calendar.MINUTE, 30); 
     calendar.set(Calendar.SECOND, 0); 
     calendar.set(Calendar.MILLISECOND, 0); 

     AlarmManager alrmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     Intent intent = new Intent(this, MyBroadcastReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
     alrmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
     break; 
    } 
} 

回答

0

您正在設置錯誤的星期幾。 Calendar.SUNDAY = 1,所以更改如下:

calendar.set(Calendar.DAY_OF_WEEK, 1); 

或者更好的是,使用類常量:

calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 
+0

WOW THANK YOU!我看過的例子在設置日期編號方面是錯誤的。 – rainingdx 2014-10-12 07:57:37

+0

是的,日曆類的值很奇怪。例如,一週的天數以1爲基礎,但以月爲基礎。如果可能的話,最好使用類常量。 – 2014-10-12 08:00:24

+0

順便說一句,當你調用'Calendar.getInstance()'時,它返回一個已經設置好當前時間的實例。只是FYI。 – 2014-10-12 08:07:28

相關問題