2013-12-16 92 views
0

我正在开发一个应用程序,每隔5天后需要发出警报,因为我使用的是setRepeating方法,例如:今天的日期是16,所以警报应该在21上触发,但为了测试目的,我将我的设备日期16更改为17,并突然发出警报,但它应在5天后开始警报,我无法查明我做错了什么。请帮帮我 。提前致谢。重复报警无法正常工作

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     long check = 86400000; // no. of millisecond in days 
     int days = Integer.parseInt(strDays); 
     Intent intent = new Intent(getBaseContext(), AlarmReciever.class); 
     intent.putExtra("Item", "Time To Pick Up " + strItemName); 
     intent.putExtra("Id", 1); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(
       getBaseContext(), RQS_1, intent, 0); 
long time =check*2; // for 2 days 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),time,pendingIntent); 

回答

1

setRepeating

http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating(int,阅读文档很长很长,android.app.PendingIntent)

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),time,pendingIntent);

这里System.currentTimeMillis()表明,报警器应首先熄灭瞬间,然后经过5天。

triggerAtMillis使用适当的时钟(取决于报警类型),报警首先应该关闭 ,以毫秒为单位的时间(以毫秒为单位)。

+0

我不明白,请您解释 –

+0

setRepeating调用中的第二个参数指定何时应该首先关闭警报。您应该指定今天+5,而不是当前时间。 –

+0

意味着我必须使用时间参数 –