我应该为连续后台任务实现哪种类型的服务



我已经检查谷歌的文档好几天了,但我不确定我应该怎么做。

我脑海中的想法是创建一个在后台运行(永远(的服务,即使设备重新启动等(例如,WhatsApp(。例如,此服务应在周四每 30 分钟通过互联网访问一次。

但是,我

不确定我是否必须创建一个经典的服务,一个带有BroadCastReceiver的服务,等等。

我想要一些关于搜索重点的解释。我应该使用哪种服务来执行永无止境的任务?

没有人想要一个永远在后台运行的应用程序。你想要一个定期启动(在后台(的应用程序,执行操作,然后再次睡眠。

此外,在Android中,没有什么会"永远"运行。生命周期由Android操作系统处理,这意味着如果它想要资源,它可以杀死你的应用程序。

所以你可以做两件事:

  • BroadcastReceiver + Service:BR侦听Android启动Intent,然后启动可能无限期运行的服务(使用startService(。
  • AlarmManager + BroadcastReceiver (+Service (:以您希望 BR 启动的指定时间间隔创建警报。然后,BR可以启动完成繁重工作的Service。服务完成后,它应该自杀!

IntentService不能使用,因为当没有更多任务时它会杀死自己 BroadcastReceived不能单独使用,因为它只能存活几秒钟(10秒(

博士

不要制作永远运行的服务。创建一个Service完成它的任务,完成后自杀。然后定期启动此Service

最新更新