Java 报警设置的频率高于提供的时间
每当用户进入MainActivity时,我都会使用下面的代码将报警设置为43200000毫秒的间隔,并删除以前的报警Java 报警设置的频率高于提供的时间,java,android,alarmmanager,android-broadcast,Java,Android,Alarmmanager,Android Broadcast,每当用户进入MainActivity时,我都会使用下面的代码将报警设置为43200000毫秒的间隔,并删除以前的报警 int interval =43200000; Intent alarmIntent = new Intent(this, AlarmReceiver.class); pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0); manager = (AlarmManager)getSystemServi
int interval =43200000;
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.cancel(pendingIntent);
manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
setContentView(R.layout.activity_main);
问题是我每2分钟打开一次应用程序就会收到通知或发出警报
我建议使用以下方法:
manager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+interval,interval,PendingContent)代码>
第二个参数:
triggerAtMillis long:使用适当的时钟(取决于闹钟类型),闹钟第一次响起的时间(以毫秒为单位)
或者更好:
am.setExactAndAllowHileIDLE(AlarmManager.RTC_唤醒:AlarmManager.RTC,下一时刻,pi)代码>
每次启动broadcastreceiver和每次启动(启动设备)事件时都会重新激发
43200000是12小时;)别忘了
此外,对每个毫秒变量使用长类型:
long interval=43200000L代码>以防止出现一些错误。您希望实现什么?是否不希望在2分钟内发出通知?每43200000毫秒后