我正在为Android OS编写一个连接到服务器的软件,并且应该保持连接直到程序关闭。连接作为服务在后台运行,并且我收集的android中的服务应该无限期保持连接。
然而,几个小时后(时间框架随机出现)服务断开连接没有明显原因,但似乎没有触发任何断开连接事件。服务器会定期ping连接的设备,我认为这会使服务保持活动状态。
我尝试过使用WakeLocks,它似乎没什么区别,而且startForeground()似乎也没有用。我试图在一段时间后使用AlarmManager来唤醒应用程序,但这感觉就像是一种解决方法。有没有人有任何建议?或者有什么明显的错过了吗?
感谢你的帮助。
答案 0 :(得分:0)
据我所知,在android中收集的服务应无限期保持联系。
一般来说这是不正确的。
然而,在几个小时后(时间框架随机出现),服务断开连接没有明显的原因,但似乎没有触发任何断开事件。
LogCat可能表示您的流程已被终止。
我尝试过使用WakeLocks,似乎没什么区别
由于手机将在没有手机的情况下入睡,因此WakeLock
对您的应用来说至关重要,至少如果您使用的是WiFi。正如我所理解的,开放式3G插座上的入站数据包应自动唤醒手机,但我还没有尝试过。
然而,手机应该比“几个小时”快得多入睡,所以我假设您通过其他方式保持设备唤醒(例如,插入USB)。
以及startForeground()似乎也无法正常工作
现在应该足以让你免于被杀,AFAIK。当然,权衡是Notification
。