Понимание управления памятью для сервисов на Android - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в службах Android и мне нужна помощь.Я пытаюсь понять руководство Google, но в нем действительно не хватает информации, и я ненавижу тот факт, что Google автоматически переводит на мой язык и не позволяет мне ОТКАЗАТЬ его, поэтому я не могу процитировать его здесь.

https://developer.android.com/guide/components/services

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

Мой сервис отслеживает некоторые вещи из социальных сетей пользователей, поэтому мне нужно использовать Apis социальных сетей для связи с их сервером.Чтобы упростить задачу, я обертываю API социальных сетей в один фасад, а мой сервис работает только с этим фасадом.этот фасад представляет собой одноэлементный

пользователь входит в систему -> служба начинает работать в фоновом режиме -> в определенный момент пользователь покидает приложение, теперь запускается проблема ...

после того, как пользовательВыйдя из приложения, мой фоновый сервис продолжает работать: ОК
все его поля все еще не собраны GC: ОК, но внутренние поля синглтона фасада освобождаются GC, и в определенный момент мой вызов службы синглтон (не ноль)который вызывает какое-то поле, которое теперь является нулевым: ПРОБЛЕМА

как я могу справиться с этим?как я могу заставить андроид сохранить эти поля (их не так много) живыми, потому что они используются моим сервисом

ПОЖАЛУЙСТА, не просите меня сделать их доступными или что-то вроде этого ... этосторонний API, я не могу изменить

...