我正在开发一个需要在每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);
答案 0 :(得分:1)
阅读setRepeating
http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating(int,long,long,android.app.PendingIntent)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),time,pendingIntent);
此处System.currentTimeMillis()
表示警报应该立即开始,然后在5天后停止。
triggerAtMill是警报首先应以毫秒为单位的时间 关闭,使用适当的时钟(取决于报警类型)。