【发布时间】:2021-03-24 18:48:19
【问题描述】:
我正在编写我的第一个警报程序。该程序设置一个重复警报,预计每 200 毫秒触发一次。但重点是,间隔几乎是 40 秒!!似乎我设置的任何间隔时间都无关紧要。所以实际上,在 API 19 之后似乎没有办法让setRepeating() 类的警报更频繁地触发,而不是大约 40 秒,对吧?
这是代码的sn-p:
if(alarmRepetition.equalsIgnoreCase(context.getString(R.string.alarm_once))){
Intent backIntent = new Intent("Time to delete an Alarm kva-kva");
backIntent.putExtra("Time to delete", alarmId);
Calendar calendarNow = Calendar.getInstance();
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, alarmId, backIntent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, calendarNow.getTimeInMillis(), 200, pendingIntent);
}
【问题讨论】:
-
每 200 毫秒重复一次警报似乎是对系统资源的滥用。这是要测试的玩具示例,还是您实际上每 200 毫秒尝试做一些事情?如果是这样,AlarmManager 几乎肯定是错误的工具。您可能需要一个前台服务,它每 200 毫秒在进程中运行一次。
-
嗨瑞恩!当然这是一个玩具例子!在任何实际情况下,我绝对不需要每 200 毫秒发出一次警报。
-
你好安德烈。我知道有几种选择。但我不明白为什么我们真的需要 setRepeating() 函数中的第三个参数,如果它真的没有任何意义的话。无论我将其设置为 5 秒还是几分之一秒 - 警报仍会在至少 40 秒左右重复。
标签: android alarmmanager android-alarms repeatingalarm