我有一个Service
应该保持与服务器的永久连接以便接收通知。对我的应用程序来说,按时从服务器获取消息至关重要。
我无法使用 GCM Push,因为连接将在本地网络中,并且手机可能没有任何互联网连接。我也知道在服务中保持永久连接的电池问题,但我会让用户选择此选项并通知他/她潜在的电池消耗(实际上,当设备始终处于相同状态时,该功能主要有意义连接到电源的地方)。我也知道Android系统可以随时杀死我的Service,甚至用户可以使用任务杀手来摆脱当时正在运行的所有服务。
话虽如此,我想过使用AlarmManager
定期检查我是否Service
正在运行并重新启动它以防万一。我不相信这个选项,因为服务器可以在服务被杀死但尚未由AlarmManager
.
我的问题基本上是是否有更好的策略来确保我按时收到消息?
到目前为止,我能找到的所有相关信息都代表避免使用永久服务并使用其他东西,但由于我的用例的性质,我没有其他选择。