Skip to content

Instantly share code, notes, and snippets.

@mxkmn
Last active March 11, 2024 16:18
Show Gist options
  • Save mxkmn/98020d41931983209be723d53707e1b4 to your computer and use it in GitHub Desktop.
Save mxkmn/98020d41931983209be723d53707e1b4 to your computer and use it in GitHub Desktop.
Решение проблем с работой Android приложения в фоне

Решение проблем с автозапуском

Классический ("чистый", "голый") андроид относится по-умному к энергосбережению, не позволяя тратить слишком много батареи приложениями. Увы, но китайцы (и иногда корейцы) считают себя умнее, чем разработчики системы и приложений - в своих телефонах они дружно решили просто ломать фоновую работу, поэтому ни одно приложение не выживает после того, как им перестают пользоваться.

К счастью, почти всегда есть возможность восстановить нормальную работу в фоне. Суть везде одна - найти нужный переключатель режимов энергопотребления и нажать на него. Ниже - инструкции для самых распространённых проблемных прошивок и общая инструкция на случай проблем.

Важно: после всех манипуляций нужно заново открыть приложение, чтобы вывести его из состояния полного отключения. После этого, через 12 часов, статус синхронизации должен измениться.

Flyme (Meizu)

Ну тут всё просто.

Во всех прошивках путь один - через приложение Безопасность разрешить работу в фоне. Проверено на Flyme 6/Android 5.1, на Flyme 7, 8/Android 8.1 и на Flyme 8, 9/Android 10.

EMUI (Huawei, Honor)

На википедии, в статье про неопределённость, компании Huawei посвящён отдельный абзац.

На одном устройстве всё работало из коробки (EMUI 5.1/Android 7). На втором (EMUI 12/Android 10) нужно было добавить разрешения через настройки - инструкция ниже. Но не факт, что она вам поможет - они постоянно меняют местоположение нужных настроек в разных версиях прошивок. Если что - посмотрите гайд в самом конце.

На EMUI 12 действия такие: Настройки -> батарея -> запуск приложений -> три точки -> запуск вручную -> поставить все галки.

MIUI (Xiaomi, Redmi, Poco)

Ты чё, бредишь?

В прошивке стопицот почти одинаковых настроек, которые могут помочь, а могут и нет. Неясно, отчего это зависит - от версии MIUI, андроида, или вообще от модели устройства. Короче, пробуйте по порядку:

Вариант 1 - простой, работает не всегда: Настройки -> приложения -> разрешения -> автозапуск в фоновом режиме -> включаем приложение. Работает на MIUI 14/Android 12, MIUI 12/Android 10.

Вариант 2 - простой, тупой и неудобный, но работает хорошо: просто не выгружайте приложение из списка запущенных (которое на скрине ниже). Ещё можно замочек поставить (иногда это важно, а иногда бесполезно) - зажмите приложение, и если кнопка замка доступна, то нажмите на неё. Работает на MIUI 14/Android 13, MIUI 11/Android 9.

Вариант 3 - сложный. Попытаться заставить работать через те самые стопицот переключателей. Но мне и другим тестерам они никак не помогли, так что не советую.

Вариант 4 - простой и почти не бесячий. Забить на автосинхронизацию и заходить в приложение по необходимости. С учётом того, что заходить придётся лишь раз в две недели - вполне вариант.

Вариант 5 - накатить кастом.

Что делать, если у меня другая прошивка или инструкции выше не помогли?

Советы есть по всему интернету - забивайте в гугле "*название модели/прошивки* background work" (ну или "*название модели/прошивки* работа в фоне", если с английским совсем туго) - скорее всего найдёте что-то. Не факт, что рабочее, поэтому пробуйте несколько раз.

Также немного устаревшим, но всё ещё удобным сайтом является Dontkillmyapp, на котором по некоторым прошивкам написано пошагово и очень просто, и решение занимает минуту-две. Скорее всего стоит начать с этого сайта.

Если не готовы париться - просто забейте на автосинхронизацию и заходите в приложение по необходимости, когда расписание понадобится обновить. Если расписание для вашей группы меняется сравнительно редко, то это вполне вариант. Поскольку используется системный календарь, проблем с просмотром и уведомлениями не возникнет.


Если хотите помочь - сообщите мне в телеге путь решения для своего телефона, добавлю сюда.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment