我正在运行一个远程服务,它有一个每15分钟执行一次操作的处理程序(handler.postDelayed()),它涉及发出一个互联网请求。有时候我注意到它没有发生。是否上网(移动数据连接在移动设备休眠或处理器休眠时关闭)。在这段时间会发生什么?
我想当屏幕进入睡眠状态时互联网会关闭。什么是有效的方法来确保它在所需的时间间隔(半小时)醒来(打开互联网)并在远程服务中完成工作?这项服务应该在后台运行。我可以使用AlarmManager执行此操作(它是否可以触发远程服务中的某项工作)?
答案 0 :(得分:0)
如相关问题answer中所述,如果您仅使用Wi-Fi进行此项服务,则可以尝试WifiLock。
另一个原因是,当Android看不到任何用途时,您的服务可能会被销毁。如果是这种情况,您可以尝试Foreground service选项。请注意,这并不能保证服务不会被破坏,但与其他服务相比优先级会降低,从而为您的服务提供更多生存机会。