1
我打算開發一個應用程序,要求用戶將藍牙打開並關閉一週中的幾天,然後使用Alarm Service來執行此操作。我用下面的grunt代碼進行測試。使用報警服務在指定時間每天關閉藍牙
Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
/*
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 30);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
*/
Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, 13);
cal.set(Calendar.MINUTE, 23);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
但是這不會在下午1點30分觸發我的服務。 註釋掉的代碼工作正常。它從當前時間起30分鐘觸發我的警報。但是當我硬編碼的時候。它不起作用。我無法找出Calender cal代碼片段中的錯誤。
我在做什麼錯?
yes offcourse。但我用集合來測試。在我指定 – learner
的時候警報沒有關閉,您也可以嘗試SystemClock.currentTimeMillis()作爲開始,以查看您的pendingIntent被觸發或日曆不會觸發。 – Thkru
當我用註釋掉的代碼排除任何問題時,我的未決意圖正在觸發。但硬編碼的日曆實例不會觸發它 – learner