0

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

然而,几个小时后(时间范围似乎是随机的),服务无缘无故断开连接,但似乎没有触发任何断开连接事件。服务器定期 ping 连接的设备,我认为这会使服务保持活动状态。

我尝试使用似乎没有任何区别的 WakeLocks 以及似乎也不起作用的 startForeground()。我正在尝试使用 AlarmManager 在一段时间后唤醒应用程序,但这感觉有点麻烦。有没有人有任何建议?还是有什么明显的我错过了?

提前感谢您的帮助。

4

1 回答 1

0

就我在 android 中收集的服务而言,应该无限期地保持连接。

这通常是不正确的。

然而,几个小时后(时间范围似乎是随机的),服务无缘无故断开连接,但似乎没有触发任何断开连接事件。

LogCat 可能会指示您的进程已终止。

我试过使用 WakeLocks 这似乎没有任何区别

由于手机会在没有手机的情况下进入睡眠状态,WakeLock因此对于您的应用程序来说,至少在您使用 WiFi 的情况下是必不可少的。据我了解,打开的 3G 套接字上的入站数据包应该会自动唤醒手机,但我还没有尝试过。

但是,手机应该比“几个小时”更快地进入睡眠状态,所以我假设您通过其他方式(例如,插入 USB)使设备保持唤醒状态。

还有 startForeground() 似乎也不起作用

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

于 2011-01-07T13:38:09.413 回答