Noy*_*ose 3 android alarmmanager android-background firebase-job-dispatcher android-workmanager
我目前使用 Firebase JobDipatcher 在后台执行周期性任务。问题是后台服务仅在禁用电池优化并且应用程序的待机状态在开发人员选项下手动设置为 ACTIVE 时才会执行。有没有办法在不手动更改所有这些的情况下完成后台任务,因为我不能要求应用程序的每个用户都这样做。并看到许多帖子说如果在应用程序中请求电源管理权限,谷歌将暂停该应用程序。任何帮助将非常感激。
san*_*ane 23
一句话回答是大不
由于开发人员对这么小的答案仍然不满意,所以我开始HUGE理论,我们开始 -
策略一:
AlarmManagerReboot,所以将所有闹钟保存在应用程序Sqlite数据库中,实现BOOT_COMPLETEDbroadcastreceiver,仍然允许静态定义并通过从应用程序数据库中获取重新安排所有闹钟。emulatorsBOOT_COMPLETED广播接收器。useless(根据中文 ROM),因此它们不允许所有其他包后台任务..!!foreground. 如果从应用程序中删除,则永远不会触发recents策略二:
FirebaseJobScedular按照你说的使用
如果用户更新Google Play Services,则系统会忘记所有作业..!!
再次FirebaseJobScedular开发以在市场上的每个设备上运行所有作业,但由于中国 ROM 不允许任何进程/类/作业来自他们自己wishlist,这再次没有意义。
这个库现在被谷歌贬低了。
策略三:
使用WorkManager,正式在 FireBaseJobScedular 上发生的新库。
同样的东西,WorkManager仍在开发中,你可以使用它,但情况是一样的,许多中国 ROM 也放弃了这个库工作..!!
策略 4:
运行所有时间前台服务。
BOOT_COMPLETED从你broadcastreceiver重新开始吧。
但是即使你使用START_STICKY,许多用于暂停其任务的中文ROM,你可以在前台看到它,但工作被暂停。
策略 5:
用 WakeLocks
但是随着android版本的变化,在每个版本中都变成了更新较新的实现策略
战略号 - 6 :
以编程方式为您的应用程序关闭电池优化,但在这种情况下,谷歌会从应用程序商店停止您的应用程序
谷歌允许通过以编程方式打开并让他自己选择电池优化来将用户导航到电池优化设置意图
但是市场上没有用户,谁知道呢,就连很多开发者都不知道,终端用户怎么理解..??
同样,如果用户开启了省电模式(它与电池优化不同),那么您的电池优化永远不会被考虑。
那我该怎么办……?
phone,此后,用户无法将其从最近的应用程序中滑动,即使它被滑动,您的上述所有策略都会起作用并且您的工作/警报/ 任务将被执行,就像它在你的 android 模拟器或股票 android 上发生的那样
这是开箱即用的解决方案..??
是的。在市场上,您会注意到 1% 的库存安卓设备和 99% 的中文修改 ROM
在我失去了过去 9 到 10 年解决同样的问题后,这所有的知识都给了我,Hussshhhh
| 归档时间: |
|
| 查看次数: |
2069 次 |
| 最近记录: |