Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 报警设置的频率高于提供的时间_Java_Android_Alarmmanager_Android Broadcast - Fatal编程技术网

Java 报警设置的频率高于提供的时间

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

每当用户进入MainActivity时,我都会使用下面的代码将报警设置为43200000毫秒的间隔,并删除以前的报警

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毫秒后