作为一个刚接触android的开发人员,我想我可能误解了绑定服务。绑定服务的多个实例 - 绑定服务在应用程序的末端生存
我创建了一个服务来包装对服务器的访问。作为此服务的一部分,该服务正在侦听多播地址以识别本地网络上的设备何时出现和消失。
但是,由于存在多个启动服务实例,我遇到了问题。这种情况发生在活动关闭时(使用后退按钮),然后很快重新开启。其效果是服务无法绑定到本地端口,因此无法侦听多播。
我曾经认为一旦活动停止,绑定的服务就会死亡,但看起来并非如此。
我误解了绑定服务还是我在做其他错误?
编辑
所以接缝我的误解是,我会认为该方案将尽快清理作为最后一个非守护线程关闭并会尽快终止活动是。
我已通过显式取消侦听线程并关闭onDestroy()
中的套接字来解决此问题。
服务就像单身人士:http://stackoverflow.com/a/3692966/995891 - 在你的实现中有其他东西阻塞了端口,也就是说你在你的服务中多次启动你的线程。 (线程可以继续运行而不被其他代码引用,它们不会被神奇地收集到) – zapl 2013-03-25 19:21:17