Android应用程序在后台线程中关闭连接

时间:2014-05-06 15:36:32

标签: java android multithreading sockets

我有一个Android应用程序。 它打开与另一台机器上的服务器的Internet连接。 服务器将常规状态更新发送回android应用程序 该应用程序有多个活动,必须在每个活动之间传递相同的开放连接。

拥有一个包含连接的自定义Application对象非常适合这种情况

但是:当我的应用程序退出时,我想关闭连接,终止线程并停止从服务器接收这些更新。 不过,我读过一篇文章,解释说Android应用程序没有退出,也无法获得终止事件/消息/信号。

如何关闭Android应用程序中的连接? 如何停止线程并停止浪费电池?

1 个答案:

答案 0 :(得分:1)

我发现实现此目的的方法是创建一个计算绑定到自身的服务。然后我将每个活动绑定到服务。 如果服务注意到它有0个绑定,它会等待一段时间然后终止。

我在这里完整记录了我的方法: https://code.metcarob.com/node/201

我对此并不十分满意,但这是我能找到的最佳解决方案。