English 中文(简体)
无人机服务、生命周期和线
原标题:Android Service, life cycle and threads

我正在做一项服务, 扩展服务班级, 并使用分解线 处理接收信息, 所以,我有以下 在我的Create 方法

thread = new HandlerThread("MYSERVICE-THREAD",
        Process.THREAD_PRIORITY_BACKGROUND);

thread.start();
serviceLooper = thread.getLooper();
serviceHandler = new ServiceHandler(mServiceLooper);

在此线索中, 我创建了一个位置管理器, 并设置它来倾听位置变化 。 虽然我有点担心线的生命周期 。 这就是为什么:

如果我"强力"不要把定位听众从Destroy服务方法的定位管理器上移开,通过电话网强制更新位置,一切都会好起来。我发现这个奇怪,并尝试在Destroy服务方法上用线条.quit()明确结束线条。所以,现在,在用电话网进行位置更新时,我首先会得到一种警告。一个处理器正在用一条死线呼叫一个处理器。

从定位管理器中移除定位听众显然解决了这个问题,但是,这似乎暗示我,如果我不明确关闭线条,在服务被摧毁后,线条将继续运行。这是否正确?在开发商.android.com的例子中,他们没有明确关闭线条,所以我认为VM会处理此案。

最佳回答

哦,是的,对活动也是这样。线索也保持开放,直到Android明确杀死他们,释放资源,除非你自己关闭它们。从技术意义上讲,活动和服务从堆叠中跳出来时从不关闭。它只是告诉操作系统,他们使用的所有资源在需要时都可以收回,以便记忆库将成为操作系统首选的记忆库。如果任何类型的线索仍然在运行,它将继续运行(并占用 CPU 资源), 直到记忆恢复到1秒到永久之间。

问题回答

这似乎暗示我,如果我不明确关闭线条,在服务被摧毁后,线条将继续运行。这是否正确?

绝对的,如果你把线叉开,你就得清理干净

所以我想VM会处理这个案子

最终,它将会最终终止您的应用程序的整个过程。 说到这里, 您不想泄漏线索, 而您“ 真正 < / em > 不想泄漏 < code> requestLoseLorationUndates () 呼叫( 或您用 < code>LocationManager 使用的任何电话), 因为这可以保持定位提供者的动力( 例如, GPS ) 。

在开发商 和机器人 com 的例子中,他们没有 明确关闭他们的线

你指的是哪些例子?





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签