【问题标题】:Android service sleeping after a prolonged period of time安卓服务长时间休眠
【发布时间】:2011-01-07 09:57:38
【问题描述】:

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

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

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

提前感谢您的帮助。

【问题讨论】:

    标签: android service timeout alarmmanager


    【解决方案1】:

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

    这通常是不正确的。

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

    LogCat 可能会表明您的进程已被终止。

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多