Одним словом ответ БОЛЬШОЙ НЕТ
Поскольку разработчики остаются недовольны такими маленькими ответами, поэтому я начинаю теорию HUGE
, здесь мы идем-
СТРАТЕГИЯ № - 1:
- Использование
AlarmManager
- Все тревоги забываются андроидом на
Reboot
, поэтомухраните все аварийные сигналы в базе данных приложения Sqlite
, внедрите BOOT_COMPLETED
broadcastreceiver, которому все еще разрешено статически определять и планировать все аварийные сигналы, используя данные из базы данных приложений. - Весь ваш проект и тяжелая работа будут работать в соответствии с вашим планом, но только на
emulators
- Поскольку в реальном мире 99% устройств имеют китайские ПЗУ, такие как MIUI, OxygenOs, ColorOs,FunTouchOs, .. который никогда не запускает ваши приложения
BOOT_COMPLETED
broadcastreceiver. - Поскольку все они впереди в плане экономии заряда батареи, остановив все фоновые службы приложений .. !!
- Хороший вопрос: - Тогда почему процессы whatsapp, facebook, tiktok, twitter выполняютсяобычно...??А почему не мое ... ??
- Хороший ответ: - Если китайские ПЗУ не разрешают использовать фоновые сервисы приложений, то никто не будет покупать их устройства .. !!И давайте не будем говорить о вашем приложении, так как оно никак не влияет на мир, ваше приложение
useless
(согласно китайским ПЗУ), поэтому они запрещают фоновые задачи всех остальных пакетов .. !! - Все китайские ПЗУ никогда не запускают AlarmManager, если приложение не находится в
foreground
.Никогда не срабатывает, если приложение удалено из recents
- Короче говоря, относитесь к Alarmmanager как к обесцененному.
СТРАТЕГИЯ № - 2:
Используйте FirebaseJobScedular
, как вы указали
Если пользователь обновляет Google Play Services
, то система забывает все задания .. !!
Опять же FirebaseJobScedular
был разработан для запуска всех заданий на всех устройствах на рынке, но поскольку китайские ПЗУ никогда не допускают никаких процессов / классов / заданий из своих wishlist
, это снова не имеет смысла.
Эта библиотека удалена из Google сейчас.
СТРАТЕГИЯ № - 3:
Используйте WorkManager
, новую библиотеку, которая официально размещается над FireBaseJobScedular.
Снова то же самое, WorkManager
все еще находится в разработке, вы можете использовать его, но дело в том, что многие китайские ПЗУ также отказываются от заданий этой библиотеки .. !!
СТРАТЕГИЯ № - 4:
Запускать все время приоритетный сервис.
BOOT_COMPLETED
из вашего broadcastreceiver
запустить его снова.
Но дажеесли вы используете START_STICKY
, многие китайские ПЗУ использовали для приостановки его задач, вы можете увидеть это на переднем плане, но работа будет приостановлена.
СТРАТЕГИЯ № - 5:
Использование WakeLocks
Но по мере изменения версии Android она меняется на более новые, более новые стратегии реализации в каждой версии
СТРАТЕГИЯ № - 6:
Программно отключить оптимизацию заряда батареи для вашего приложения, но в этом случае Google отключает ваше приложение из магазина приложений
Перейдите к намерению пользователя настроить параметры оптимизации батареи, открыв его программноИ пусть он сам выбирает оптимизацию батареи, это разрешено google
Но так как ни один пользователь на рынке не знает этого, так как даже многие разработчики этого еще не знают, как конечные пользователиможет понять это .. ??
Опять же, если режим энергосбережения (он отличается от оптимизации батареи в порядке) включен пользователем, то ни в коем случае ваши оптимизации батареи никогда не рассматриваются.
Что мне тогда делать ...?
- Ничто как разработчик.
- Обучите вашу команду поддержки / продаж «ЗАКРЫТЬ» ваше приложение по дням каждого
phone
, после чего пользователи не смогут смахнуть его с последних, даже если оно будет смахнуто, все вышеперечисленные стратегии будутработа и ваши рабочие места / тревоги / задачи будут выполнены, как это происходит на вашем эмуляторе Android или как на складе Android - Обучите свою службу поддержки / продаж, как сделать оптимизацию батареи, чтобы "Не оптимизировать для этого приложения" тоже ..
Это так изкоробочное решение .. ??
Да, это так.Как и на рынке, вы заметите, что 1% акций Android-устройств и 99% китайских модифицированных ПЗУ
Все эти знания пришли ко мне после того, как я потерял последние 9–10 лет, решая ту же проблему, Hussshhhh