相关疑难解决方法(0)

AlarmManager的setInexactRepeating()有多不精确?

所以这就是交易......我必须在上课时让用户的手机静音.因此,我需要在每个班级的特定时间每天发出警报.

所以我认为每个班级都有自己的警报(间隔设定为一天).如果课程在今天开课,电话会被静音.

这是我目前的代码:

am.setInexactRepeating(AlarmManager.RTC_WAKEUP, startTime, 
                       DAY_IN_MILLISECONDS, start);
Run Code Online (Sandbox Code Playgroud)

setInexactRepeating()是否足够准确,可在一天内的几分钟内使手机静音?

android

15
推荐指数
1
解决办法
8357
查看次数

Android 如何设置精确的重复闹钟?

我正在构建一个警报应用程序,它将有一个精确的重复警报。

看到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)

java android android-alarms

2
推荐指数
1
解决办法
3828
查看次数

标签 统计

android ×2

android-alarms ×1

java ×1