我已经检查谷歌的文档好几天了,但我不确定我应该怎么做。
我脑海中的想法是创建一个在后台运行(永远(的服务,即使设备重新启动等(例如,WhatsApp(。例如,此服务应在周四每 30 分钟通过互联网访问一次。
但是,我不确定我是否必须创建一个经典的服务,一个带有BroadCastReceiver的服务,等等。
我想要一些关于搜索重点的解释。我应该使用哪种服务来执行永无止境的任务?
没有人想要一个永远在后台运行的应用程序。你想要一个定期启动(在后台(的应用程序,执行操作,然后再次睡眠。
此外,在Android中,没有什么会"永远"运行。生命周期由Android操作系统处理,这意味着如果它想要资源,它可以杀死你的应用程序。
所以你可以做两件事:
-
BroadcastReceiver
+Service
:BR侦听Android启动Intent
,然后启动可能无限期运行的服务(使用startService
(。 -
AlarmManager
+BroadcastReceiver
(+Service
(:以您希望 BR 启动的指定时间间隔创建警报。然后,BR可以启动完成繁重工作的Service
。服务完成后,它应该自杀!
IntentService
不能使用,因为当没有更多任务时它会杀死自己 BroadcastReceived
不能单独使用,因为它只能存活几秒钟(10秒(
博士
不要制作永远运行的服务。创建一个Service
完成它的任务,完成后自杀。然后定期启动此Service
。