AutoJs6
AutoJs6 copied to clipboard
Unable to start receiver
定时任务的时候,会报这个错误。 手动执行的时候不会。 要怎么解决这个问题?
我没使用广播接收器呀, 是不是有什么自带的方法使用了这个,但我不知道的?
通过 toast 消息, 推测完整的类名应该是 com.evernote.android.job.v14.PlatformAlarmReceiver.
AutoJs6 内部 "定时任务" 功能目前使用的是 Auto.js 4.x 遗留下来的 Evernote Android-Job 库, 它会通过广播 + Alarm/JobScheduler 唤醒并执行定时任务. 定时任务是在后台被广播唤醒, 有可能会触发系统限制, 从而出现 "Unable to start receiver" 的报错.
未来 AutoJs6 会支持在 AlarmManager/WorkManager/JobScheduler 调度引擎之间进行切换. 其中 WorkManager 的兼容性通常更好, 可以一定程度上避免上述情况的发生. 另外 AlarmManager 配合 "允许设置闹钟和提醒" 权限也可以很好地规避无法于后台唤醒并执行定时任务的限制.
目前你可以尝试将 AutoJs6 加入自启动和电池优化白名单.