2016-09-16 2 views
0

Я думал об этом вопросе. Если служба использует некоторые ссылки на переменные активности в неопределенном цикле и потому что служба не будет убита, если вы явно не остановите ее, тогда активность будет убита так же просто, как без запуска службы, ссылающейся на некоторых ее членов через некоторое время ? Любой ответ будет очень благодарен.Служба Android не работает неограниченно

+0

@Onik зависит от переменных, которые совместно используются. Если сама операция имеет ссылку, она недействительна. Такая же проблема, если нестатический класс является общим, поскольку нестатические классы имеют неявную ссылку на родителя. –

ответ

2

Активность может быть убита, если она содержит другие компоненты, ссылающиеся на ее переменные - она ​​просто не может быть собрана мусором. Таким образом, у вас будет дополнительная копия Activity, если какая-либо из этих общих переменных имеет явную или неявную ссылку на Activity. Это утечка памяти (да, они возможны на Java). Вот почему совместное использование переменных между компонентами - плохая идея.

+0

Спасибо за ваш быстрый и очень разумный ответ! Я постараюсь, чтобы моя служба не полагалась на какую-либо деятельность, чтобы работать бесконечно. – user1870797

Смежные вопросы