我写了一个应用程序需要每分钟唤醒一次,只要它使用清单中声明并由AlarmManager.setAlarmClock()
触发的广播接收器运行,因为它是唯一的确切解决方案这似乎适用于Android 7+而不会限制警报重复。
我觉得我已经严格遵循网络上的所有提示(特别是SO)来保持我的应用程序正常运行,但迟早会将其移至打盹或休眠状态状态,即使我使用Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
将我的应用列入白名单,并且我在安排下一次闹钟时使用接收器内的唤醒锁定。
负责"冻结"我的应用程序是" ash "。我在哪里可以找到有关此流程的更多信息?它是否特定于制造商的操作系统?
如何禁用我的应用程序的打瞌睡/休眠?我不能为我的生活得到这个应用程序继续持续运行。任何提示都表示赞赏!
使用的设备是带有 Android 7.0 的华为P8 lite 2017 。 由于源代码已经相当复杂,而且我认为我在代码方面做了一切正确的事情,我现在不在这里发布任何代码。 (但是,我会根据要求提供相应的代码示例。)
手头的问题似乎是操作系统本身的一般问题,因为我读到许多人没有让这个工作。 (这太荒谬了......为了缩短电池续航时间而设置准确的计时器。为什么,谷歌?)
以下catlog输出显示" ash&#34 ;;在这种情况下,它也冻结了我的应用程序约半小时,也工作了大约半小时。我想,当我再次打开并再次解锁手机时,应用程序再次继续工作。
06-06 22:37:33.122 I/ash ( 1772): de.paulwilhelm.limon send broadcast: notify package: de.paulwilhelm.limon, pid: -1
06-06 22:37:33.122 I/ash ( 1772): screen off de.paulwilhelm.limon H to D, reason:bc_notify_
06-06 22:37:33.122 I/ash ( 1772): de.paulwilhelm.limon { hibernation duration=60527 } transition to: doze reason:bc_notify_
06-06 22:37:33.155 I/ash ( 1772): Unfreeze de.paulwilhelm.limon OK !
06-06 22:37:33.160 I/ash ( 1772): unproxy de.paulwilhelm.limon broadcast OK !
06-06 22:37:33.167 I/ash ( 1772): Unpending de.paulwilhelm.limon alarm OK !
06-06 22:37:33.169 I/ash ( 1772): unproxy app:de.paulwilhelm.limon,uid:10118,result:true
06-06 22:37:33.175 I/ash ( 1772): front app: de.paulwilhelm.limon goes to H
06-06 22:37:33.176 I/ash ( 1772): ignore front app :de.paulwilhelm.limon screen off:523907ms
06-06 22:37:33.176 I/ash ( 1772): de.paulwilhelm.limon is front app
06-06 22:37:33.176 I/ash ( 1772): ignore front app :de.paulwilhelm.limon screen off:523907ms
06-06 22:37:33.179 I/ash ( 1772): de.paulwilhelm.limon { doze duration=10 } transition to: hibernation reason:
06-06 22:37:33.180 I/ash ( 1772): Pending de.paulwilhelm.limon alarm OK !
06-06 22:37:33.181 I/ash ( 1772): proxy de.paulwilhelm.limon broadcast OK !
06-06 22:37:33.183 I/ash ( 1772): proxy app:de.paulwilhelm.limon,uid:10118,result:true
06-06 22:37:33.184 I/ash ( 1772): Freeze de.paulwilhelm.limon OK !
06-06 22:37:33.185 I/ash ( 1772): add listener de.paulwilhelm.limon net packet OK !,uid:10118
06-06 22:37:33.188 I/ash ( 1772): has wakelock app: de.paulwilhelm.limon, uid: 10118
答案 0 :(得分:0)
我自己作为HUAWEI用户,还经历了“灰化”和休眠模式。肯定要扩展(甚至可能解决)的是使用前台服务(这可能是您在做什么),从而提高了通知对IMPORTANCE_MAX的重要性,并且最重要的是让华为管理应用程序的功能手动进入设置->电池->启动。在此处找到您的应用,单击它,打开每个选项(还包括“在后台运行”),并说“手动管理”。
这就是解决我的问题的方法,希望它也能解决您的问题。