Android Nougat убивает мое приложение на Oneplus

У меня есть приложение, которое мы используем для исследовательских целей, которое собирает данные с датчиков в фоновом режиме. Я использую сервис, который регистрирует некоторые широковещательные приемники, с startForeground() прилагается к уведомлению, а также я запускаю службу в onStartCommand() используя START_STICKY. На Marshmallow все работает нормально, но когда я пробую его на OnePlus 3 с 7.1.1, через некоторое время приложение просто исчезает из запущенных приложений... все убивается системой. Иногда я получаю системное уведомление, говорящее: "Внимание, приложение, работающее в фоновом режиме, использует много...". Если щелкнуть это уведомление, откроется окно "Настройки", в котором будет указано "Управление приложениями с высоким энергопотреблением", мое приложение будет доступно, но опция "Автоматически закрывать приложения с высоким энергопотреблением" отключена. Более того, я уже установил приложение как "не оптимизировать" в настройках системы под Battery. На самом деле, если я отключу регистрацию от тех датчиков, которые потребляют больше батареи, таких как Местоположение, все работает нормально, я могу запускать приложение в течение неограниченного времени. Любое предложение о том, как решить?

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

1 ответ

Решение

По-видимому, это "особенность" OxygenOS, как сообщается здесь. Моя стековая трасса прилагается, я должен сменить смартфон..

... 05-19 21:03:12.434 it.unitn.disi.witmee.sensorlog I/System.out: SERVICE: true 05-19 21:03:27.689 it.unitn.disi.witmee.sensorlog I/art: Background partial concurrent mark sweep GC freed 265550(7MB) AllocSpace objects, 0(0B) LOS objects, 39% free, 14MB/23MB, paused 1.357ms total 106.126ms 05-19 21:03:43.649 it.unitn.disi.witmee.sensorlog I/art: Background sticky concurrent mark sweep GC freed 243975(7MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 16MB/23MB, paused 1.610ms total 108.734ms 05-19 21:03:55.995 it.unitn.disi.witmee.sensorlog I/art: Background partial concurrent mark sweep GC freed 298424(8MB) AllocSpace objects, 0(0B) LOS objects, 39% free, 14MB/24MB, paused 1.716ms total 126.141ms 05-19 21:04:02.051 ? I/ActivityManager: [BgDetect]detect excessive cpu on process it.unitn.disi.witmee.sensorlog(pid : 27858) level 0 usage 29 05-19 21:04:02.088 ? I/ActivityManager: [BgDetect]force stop it.unitn.disi.witmee.sensorlog (uid 10245) level 0 05-19 21:04:02.089 ? I/ActivityManager: Force stopping it.unitn.disi.witmee.sensorlog appid=10245 user=0: from pid 1336 05-19 21:04:02.089 ? I/ActivityManager: Killing 27858:it.unitn.disi.witmee.sensorlog/u0a245 (adj 200): stop it.unitn.disi.witmee.sensorlog 05-19 21:04:02.089 ? W/ActivityManager: Scheduling restart of crashed service it.unitn.disi.witmee.sensorlog/.services.LoggingMonitoringService in 1000ms 05-19 21:04:02.091 ? I/ActivityManager: Force stopping service ServiceRecord{9156a9a u0 it.unitn.disi.witmee.sensorlog/.services.LoggingMonitoringService}

Другие вопросы по тегам