我正在做一项服务, 扩展服务班级, 并使用分解线 处理接收信息, 所以,我有以下 在我的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会处理此案。