所以这就是交易......我必须在上课时让用户的手机静音.因此,我需要在每个班级的特定时间每天发出警报.
所以我认为每个班级都有自己的警报(间隔设定为一天).如果课程在今天开课,电话会被静音.
这是我目前的代码:
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, startTime,
DAY_IN_MILLISECONDS, start);
Run Code Online (Sandbox Code Playgroud)
setInexactRepeating()是否足够准确,可在一天内的几分钟内使手机静音?
我正在构建一个警报应用程序,它将有一个精确的重复警报。
看到RepeatingAndroid如何仅Inexact提供可能延迟为所选间隔的 75% 的Exact警报,我尝试制作警报,该警报在触发时再次自行设置。只要我的屏幕一直亮着,这种类型的警报就可以完美运行。但是一旦它进入睡眠状态,警报第一次就可以正常工作,但是以编程方式设置的第二个警报会延迟触发,就像我在使用Inexact方法一样。
作为替代解决方案,我正在考虑制作一个InexactRepeating警报,每分钟都会触发一次,以检查是否到了“时间”。这样我的闹钟会有 2 分钟的不精确间隔,这是可以接受的。但我不确定它会给手机电池带来多大的压力。
有什么想法吗?
这是我的Exact警报尝试:
AlarmManager.java
public static void setAlarm(Context context){
AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
//SET BROADCAST RECEIVER WHICH WILL BE THE ONE TO LISTEN FOR THE ALARM SIGNAL
Intent intent = new Intent(context, AlarmTriggerBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 22222, intent, PendingIntent.FLAG_CANCEL_CURRENT);
//SETING THE ALARM
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 300000, pendingIntent);
} else {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 300000, …Run Code Online (Sandbox Code Playgroud)