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

2022-09-03 05:03:52

现在,我正在设置这样的警报:

        AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

        timedate = cal.getTime();

        //convert date to milis
        long timeInMilis = (timedate.getTime());

        //Set Alarm to Repeat
        manager.setRepeating(AlarmManager.RTC_WAKEUP, timeInMilis, interval, pendingIntent);

不幸的是,重复的预定时间不准确,我读到它们可能在整个间隔内都不准确!

因此,我想切换到设置精确的重复警报。我的设备至少只需要最新的 API 19/Android 4.4,因此我无法使用 setRepeating。

我该怎么做才能设置一个确切的重复闹钟?


答案 1

不幸的是,重复的预定时间不准确,我读到它们可能在整个间隔内都不准确!

如果您的年龄在19岁或以上,是的。targetSdkVersion

我该怎么做才能设置一个确切的重复闹钟?

用于控制初始延迟。然后,作为处理该事件的工作的一部分,使用在下一个所需的时间获得控制权。IOW,你自己做“重复”部分。setExact()setExact()

是的,这很烦人。

这是故意令人讨厌的,引导开发人员不要使用精确的重复警报,因为这些警报对电池来说比他们不准确的兄弟更糟糕。如果用户会察觉到不精确的行为并且不会欣赏它,请随时使用,以便在用户需要时发生警报。但是,如果用户没有察觉到不准确的行为,请使用不准确的警报,因为用户可能会注意到您的确切警报对电池的影响。setExact()


答案 2

推荐