如何在Android 4.4中设置准确,重复的警报?

时间:2014-11-16 16:52:49

标签: java android android-alarms

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

        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 个答案:

答案 0 :(得分:30)

  

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

如果targetSdkVersion为19或更高,则为是。

  

我可以做些什么来设置确切的重复闹钟?

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

是的,这很烦人。

引导开发者使用精确的重复警报是故意的,因为那些电池比他们不精确的兄弟更糟糕。如果用户会感知到不准确的行为并且不会欣赏它,请随意使用setExact()在用户需要时发出警报。但是,如果用户不会察觉到不准确的行为,请使用不准确的警报,因为用户可能会注意到您的确切警报对电池的影响。