2016-09-16 65 views
0

我一直在考虑这个问题。如果一个服务在一个无限循环中使用了一些活动变量的引用,并且除非你明确地停止服务,否则这个服务不会被杀死,那么这个活动仍然会像没有正在运行的服务引用它的一些成员一样简单? 任何答案将不胜感激。Android服务不会无限期运行

+0

@Onik取决于被共享的变量。如果活动本身具有参考,则它无效。同样的问题,如果一个非静态类是共享的,因为非静态类有一个隐式引用的父。 –

回答

2

如果Activity有其他组件参考其变量,它可能会被终止 - 它可能无法被垃圾收集。因此,如果任何这些共享变量对Activity具有显式或隐式引用,则您将拥有Activity的额外副本。这是内存泄漏(是的,它们可能在Java中)。这就是为什么在组件之间共享变量是一个坏主意。

+0

感谢您的快速和非常合理的答案!我会尽量让我的服务不依赖于任何活动,以便无限期地运行。 – user1870797