MiUI AlarmManager 延迟

最近帮朋友做个闹钟的应用, 自己用的小米手机, 随手拿来测试, 发现每次闹钟都会有5分钟以内的随机的延迟, 折腾了好久才发现是 MIUI 对Android 本身的AlarmManager做了限制, 为了省电, 每5分钟做一次检查.

javaAlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Log.d("AlarmModel", "alarm will wakeup in seconds: " + getAlarmTime().getTimeInMillis());
        alarmManager.set(AlarmManager.RTC_WAKEUP, getAlarmTime().getTimeInMillis(), pendingIntent);

但是用的正点闹钟之类的第三方APP, 完全都是准时响铃的, 所以很好奇他们的解决方案, 求解答

阅读 12k
5 个回答

正点闹钟会默认添加到自启动列表,因此可以正常唤醒。

小米在 Google官方 之前引入了 “对齐唤醒” 机制,以下是可能的解决办法(Google搜索结果,并未测试)

链接描述

对于小米这种看似有利用户,实则破坏 Android 生态的行为,个人表示抵制

灰常反感小米这种对API的大改,只会增加开发难度,破坏平台统一性

新手上路,请多包涵

你调用setExact()试一下应该是可以做到准时的

新手上路,请多包涵

正点闹钟在13年的时候也遇到过这种问题,后来是和miui团队沟通后解决的,(应该是后台给了api的源码),好不爽!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题