如何在Android中七天后触发警报

时间:2016-04-09 03:59:03

标签: java android alarmmanager android-alarms

我试图在用户启动应用程序七天后触发警报。我试图将警报设置为以下列方式触发:

Intent i = new Intent(this, MuteBroadcastReciever.class);

AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

PendingIntent pi = PendingIntent.getBroadcast(this, 747, i, 0);

alarmManager.set(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis() + (AlarmManager.INTERVAL_DAY * 7), pi);

但它仍然会在7天之前触发。

1 个答案:

答案 0 :(得分:0)

来自Android的AlarmManager页面:

  

注意:从API 19(KITKAT)开始,警报传递不准确:操作系统将移动警报以最小化唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参阅setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。 targetSdkVersion早于API 19的应用程序将继续查看之前在请求时准确传递所有警报的行为。

您使用AlarmManager.setExact(int type, long triggerAtMillis, PendingIntent operation)来确保它是准确的吗?