Foreground процесс завершается в Android
Написал приложение, которое в Foreground режиме периодически пингует сервер и забирает с него некую информацию. Проблема в том, что через некоторое время приложение перестаёт выходить на связь. По коду вроде проблем нет, и я начал капать в сторону того, что сам Android убивает фоновые процессы.
Интересно, что в настройках приложения я отключил всякую оптимизацию, разрешил работу в фоне, но ему оказалось этого недостаточно.
Для начала рекомендую подключить устройство к ПК, и снять с него логи. Для этого нужно активировать режим разработчика и разрешить отладку по USB. Далее (согласно https://habr.com/ru/companies/redmadrobot/articles/687184/) в консоли пишем команду:
1 adb -s HA55EAVLKNFMACDS logcat > logs.log
, где HA55EAVLKNFMACDS — id Вашего подключенного устройства полученный из команды (adb devices).
В предполагаемое время я увидел такое:
1
2
3
4
5 12-20 19:51:01.247 8193 8286 W PowerChecker.Controller: autoKillApp, calling ProcessManager uid = 10229, pkg = ru.knasys.first_flutter_test
12-20 19:51:01.247 1204 2448 I ProcessManager: Kill reason AutoPowerKill from pid=8193
12-20 19:51:01.251 1204 2448 I ProcessManager: AutoPowerKill: kill ru.knasys.first_flutter_test Adj=200 State=3
12-20 19:51:01.251 1204 2448 I ActivityManager: Killing 26134:ru.knasys.first_flutter_test/u0a229 (adj 200): AutoPowerKill
12-20 19:51:01.313 1204 1362 I ProcessManager: remove no clear notification:StatusBarNotification(pkg=ru.knasys.first_flutter_test user=UserHandle{0} id=888 tag=null key=0|ru.knasys.first_flutter_test|888|null|10229: Notification(channel=my_foreground pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x72 color=0x00000000 vis=PRIVATE))
Всё-таки андроид убил приложение.
Попытаюсь использовать решение отсюда https://stackoverflow.com/questions/75120437/xiaomi-redmi-android-error-in-logcat-w-powerchecker-controller-autokillapp
Ещё интересный сайт https://dontkillmyapp.com/