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

问题描述:

我有一个android应用程序。 它打开到另一台机器上的服务器的Internet连接。 服务器将常规状态更新发送回android应用程序 应用程序有多个活动,并且必须通过每个活动之间的同一个打开的连接。Android应用程序在后台关闭连接线程

具有保持连接的自定义应用程序对象符合这种情况非常好

不过:如果我的应用程序退出我想关闭连接,终止线程并停止接收来自服务器的这些更新。 但是我已阅读文章解释说,Android应用程序不会退出,并且不可能获得终止事件/消息/信号。

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

+0

你读过关于android应用程序的生命周期吗?当您的应用程序进入后台或暂停或被操作系统删除时,会有Android OS调用挂钩。你不能在这些阶段做些什么来关闭连接吗?检查这篇文章:http://developer.android.com/training/basics/activity-lifecycle/index.html – prabugp

+0

连接运行在后台作为服务或AsynchTask? – zIronManBox

+0

没有连接没有在后台运行。在应用程序对象中,我启动一个线程。我希望停止应用程序的停止活动。我无法使用活动生命周期,因为活动始终停止并终止,并且我不希望每次活动更改时都会断开连接 – Robert3452

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

我已经充分证明我的做法在这里: https://code.metcarob.com/node/201

我不与它完全满意,但它是我能找到的最好的解决方案。

+0

链接被破坏 – fdermishin

+1

对不起https://code2.metcarob.com/node/201 - 这已经很老了 – Robert3452