Android 有没有办法在安卓系统上安装一个后台服务,在准确的时间执行网络操作,而不被安卓系统杀死?

Android 有没有办法在安卓系统上安装一个后台服务,在准确的时间执行网络操作,而不被安卓系统杀死?,android,networking,service,background,Android,Networking,Service,Background,我有以下问题:我必须在我的应用程序中执行网络操作,因此执行时间有以下限制: 我必须在预先确定的时间(+/-5s)执行网络操作 网络操作必须大约每30秒进行一次(间隔取决于网络上的负载,并在运行时确定) 应始终执行这些操作。如果他们失败了,就不应该重新开始 然后,我尝试按如下方式解决问题: 有一个(后台)服务执行网络操作,然后结束 报警是在AlarmManager的帮助下设置的,它可以在准确的时间点启动服务(setExactAndAllowHileId()) 但是,出现了以下问题: 智能

我有以下问题:我必须在我的应用程序中执行网络操作,因此执行时间有以下限制:

  • 我必须在预先确定的时间(+/-5s)执行网络操作
  • 网络操作必须大约每30秒进行一次(间隔取决于网络上的负载,并在运行时确定)
  • 应始终执行这些操作。如果他们失败了,就不应该重新开始
然后,我尝试按如下方式解决问题:

  • 有一个(后台)服务执行网络操作,然后结束
  • 报警是在AlarmManager的帮助下设置的,它可以在准确的时间点启动服务(
    setExactAndAllowHileId()
但是,出现了以下问题:

  • 智能手机进入打瞌睡模式后,我会收到以下错误消息:
    W/ActivityManager:Background start not allowed:service Intent{flg=0x4 cmp=com.swp.hydra/.services.RPCService(has extra)}到com.swp.hydra/.services.RPCService from pid=-1 uid=10109 pkg=com.swp.hydra
现在回答我的问题:


  • 有没有办法在安卓系统上安装一个后台服务,在准确的时间执行网络操作,而不被安卓系统杀死
  • 如果没有,我的选择是什么
可能仍然有用的信息:

  • 该应用程序是为Android 8.0+开发的
  • 上述限制不是可变的,必须实施

看看WorkManager看看--“有没有办法让Android上的后台服务在准确的时间执行网络操作,并且不会被Android杀死?”--一般来说没有。欢迎您使用前台服务和一些进程内定时选项(例如,
ScheduledExecutorService
)。但是,您的进程最终将被操作系统或用户终止。而这种方法,即使你能让它工作起来,也会对电池造成不利影响,这就是为什么安卓和设备制造商会与你作对的原因。看看Workmanager,看看--“有没有办法在安卓上安装一个后台服务,在准确的时间执行网络操作,而不被安卓扼杀?””“不一般。欢迎您使用前台服务和一些进程内定时选项(例如,
ScheduledExecutorService
)。但是,您的进程最终将被操作系统或用户终止。而这种方法,即使你能让它工作起来,也会对电池有害,这就是为什么安卓和设备制造商会反对你。