Android服务经过一段时间的睡眠

时间:2011-01-07 09:57:38

标签: android service timeout alarmmanager

我正在为Android OS编写一个连接到服务器的软件,并且应该保持连接直到程序关闭。连接作为服务在后台运行,并且我收集的android中的服务应该无限期保持连接。

然而,几个小时后(时间框架随机出现)服务断开连接没有明显原因,但似乎没有触发任何断开连接事件。服务器会定期ping连接的设备,我认为这会使服务保持活动状态。

我尝试过使用WakeLocks,它似乎没什么区别,而且startForeground()似乎也没有用。我试图在一段时间后使用AlarmManager来唤醒应用程序,但这感觉就像是一种解决方法。有没有人有任何建议?或者有什么明显的错过了吗?

感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

  

据我所知,在android中收集的服务应无限期保持联系。

一般来说这是不正确的。

  

然而,在几个小时后(时间框架随机出现),服务断开连接没有明显的原因,但似乎没有触发任何断开事件。

LogCat可能表示您的流程已被终止。

  

我尝试过使用WakeLocks,似乎没什么区别

由于手机将在没有手机的情况下入睡,因此WakeLock对您的应用来说至关重要,至少如果您使用的是WiFi。正如我所理解的,开放式3G插座上的入站数据包应自动唤醒手机,但我还没有尝试过。

然而,手机应该比“几个小时”快得多入睡,所以我假设您通过其他方式保持设备唤醒(例如,插入USB)。

  

以及startForeground()似乎也无法正常工作

现在应该足以让你免于被杀,AFAIK。当然,权衡是Notification