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