2013-05-01 93 views
0

我想用setRepeating報警,但它不適合我。當我嘗試使用一次警報時,它正在爲我工​​作。
下面是代碼,請幫我看看我做錯了什麼。AlarmManager setRepeating功能不起作用。

Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show(); 

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, 10); 

//alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
calendar.getTimeInMillis() , 10, pendingIntent); 
System.out.println("Calendar"+calendar.getTimeInMillis());   

感謝, 阿曼

回答

0

我們如果我們使用日曆使用RTC或RTC_Wakeup。

0

你引用的不同幀的setRepeating()方法:

alarmManager.setRepeating(**AlarmManager.ELAPSED_REALTIME_WAKEUP**, **calendar.getTimeInMillis()** , 10, pendingIntent); 

AlarmManager.ELAPSED_REALTIME文檔:

alarm clock in SystemClock.elapsedRealtime()

AlarmManager.RTC文檔:

alarm clock in Sustem.currentTimeMillis()

因此,無論

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() , 10, pendingIntent); 
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() , 10, pendingIntent); 

同爲* _WAKEUP類型