android - 后台线程中长时间运行的进程(IntentService)

时间:2016-03-01 19:36:54

标签: android

我正在开发一个需要连接多个蓝牙才能接收数据的机器人。因此,如果移动设备在这些蓝牙的范围内,它将连接到它们。如果没有,当移动设备靠近蓝牙时,它将暂停并重新连接到它们。

到目前为止,连接/断开连接/重新连接一直运行良好。

我将长时间运行的进程与UI部分分开。我在intentservice中运行bluetooth connect / disconnect / reconnect,这样即使用户没有使用该应用程序,与蓝牙数据相关的业务逻辑也应该一直运行(如果电池状态良好)。

这是一步。 1.用户激活活动中的蓝牙连接(现在有三个蓝牙套接字连接)。 2.活动启动intentservice。 3. intentservice创建一个单独的线程,在后台处理连接/断开/重新连接逻辑。 4.另一个处理蓝牙数据分析并执行一些业务逻辑的线程是从intentservice创建的。

因此,只要电池寿命良好,线程处理连接/断开/重新连接应始终启动并运行。

但是我注意到的奇怪之处在于线程在某个时刻死亡(不确定何时)。我整晚都把手机(插上电源)留在蓝牙设备附近,这意味着手机一直都连接到蓝牙。

但是当我在eclipse调试模式下第二天检查连接线程时,它就死了。它不存在,我看到IntentService线程被挂起了。

几个小时后android平台是否会杀死IntentService?

对于没有源代码的冗长解释,我很抱歉。代码很复杂,但我想弄清楚为什么线程死了。也很难找到日志,所以我甚至无法判断发生了什么。

IntentService进程时间是否有任何限制?

如果有博客/资源/提示,我会很感激。

0 个答案:

没有答案