如何在电池优化处于活动状态时执行后台服务

Noy*_*ose 3 android alarmmanager android-background firebase-job-dispatcher android-workmanager

我目前使用 Firebase JobDipatcher 在后台执行周期性任务。问题是后台服务仅在禁用电池优化并且应用程序的待机状态在开发人员选项下手动设置为 ACTIVE 时才会执行。有没有办法在不手动更改所有这些的情况下完成后台任务,因为我不能要求应用程序的每个用户都这样做。并看到许多帖子说如果在应用程序中请求电源管理权限,谷歌将暂停该应用程序。任何帮助将非常感激。

san*_*ane 23

一句话回答是大不

由于开发人员对这么小的答案仍然不满意,所以我开始HUGE理论,我们开始 -

策略一:

  1. AlarmManager
  2. 所有闹钟都被android忘记了Reboot,所以将所有闹钟保存在应用程序Sqlite数据库中,实现BOOT_COMPLETEDbroadcastreceiver,仍然允许静态定义并通过从应用程序数据库中获取重新安排所有闹钟。
  3. 您所有的项目和辛勤工作都将按照您的计划进行,但仅限于 emulators
  4. 因为在现实世界中,99% 的设备都带有 MIUI、OxygenOs、ColorOs、FunTouchOs 等中文 ROM,它们永远不会触发您的应用程序BOOT_COMPLETED广播接收器。
  5. 因为他们都在通过停止所有应用程序后台服务来节省电池寿命方面处于领先地位..!!
  6. 好问题,:- 那为什么 whatsapp、facebook、tiktok、twitter 进程会正常执行......?为什么不是我的......?
  7. 不错的答案,:- 如果中文 ROM 不允许上述应用程序后台服务,那么没有人会购买他们的设备..!!并且让我们不要谈论您的应用程序,因为它不会以任何方式影响世界,您的应用程序是useless(根据中文 ROM),因此它们不允许所有其他包后台任务..!!
  8. 如果应用程序不在foreground. 如果从应用程序中删除,则永远不会触发recents
  9. 简而言之,将 Alarmmanager 视为贬值。

策略二:

  1. FirebaseJobScedular按照你说的使用

  2. 如果用户更新Google Play Services,则系统会忘记所有作业..!!

  3. 再次FirebaseJobScedular开发以在市场上的每个设备上运行所有作业,但由于中国 ROM 不允许任何进程/类/作业来自他们自己wishlist,这再次没有意义。

  4. 这个库现在被谷歌贬低了。

策略三:

  1. 使用WorkManager,正式在 FireBaseJobScedular 上发生的新库。

  2. 同样的东西,WorkManager仍在开发中,你可以使用它,但情况是一样的,许多中国 ROM 也放弃了这个库工作..!!

策略 4:

  1. 运行所有时间前台服务。

  2. BOOT_COMPLETED从你broadcastreceiver重新开始吧。

  3. 但是即使你使用START_STICKY,许多用于暂停其任务的中文ROM,你可以在前台看到它,但工作被暂停。

策略 5:

  1. WakeLocks

  2. 但是随着android版本的变化,在每个版本中都变成了更新较新的实现策略

战略号 - 6 :

  1. 以编程方式为您的应用程序关闭电池优化,但在这种情况下,谷歌会从应用程序商店停止您的应用程序

  2. 谷歌允许通过以编程方式打开并让他自己选择电池优化来将用户导航到电池优化设置意图

  3. 但是市场上没有用户,谁知道呢,就连很多开发者都不知道,终端用户怎么理解..??

  4. 同样,如果用户开启了省电模式(它与电池优化不同),那么您的电池优化永远不会被考虑。

那我该怎么办……?

  1. 没有什么作为开发人员。
  2. 训练您的支持/销售团队在每个最近的应用程序中“锁定”您的应用程序phone,此后,用户无法将其从最近的应用程序中滑动,即使它被滑动,您的上述所有策略都会起作用并且您的工作/警报/ 任务将被执行,就像它在你的 android 模拟器或股票 android 上发生的那样
    1. 培训您的支持/销售团队如何将电池优化设置为“不针对此应用进行优化”。

这是开箱即用的解决方案..??

是的。在市场上,您会注意到 1% 的库存安卓设备和 99% 的中文修改 ROM

在我失去了过去 9 到 10 年解决同样的问题后,这所有的知识都给了我,Hussshhhh

  • “将您的应用程序锁定在最近的应用程序中”是什么意思? (2认同)