-1

几天来我一直在检查谷歌的文档,但我不确定我应该怎么做。

我的想法是创建一个在后台(永远)运行的服务,即使设备重新启动等(例如,WhatsApp)。该服务应仅在星期四(例如)每 30 分钟通过互联网进行一次。

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

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

4

1 回答 1

4

没有人想要一个永远在后台运行的应用程序。您需要一个定期启动(在后台)、执行操作并再次休眠的应用程序。

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

所以你可以做两件事:

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

IntentService不能使用,因为没有任务就会自杀 BroadcastReceived不能单独使用,因为只能存活几秒(10sec)

tl;博士

不要做一个永远运行的服务。创建一个Service完成它的任务并在完成后自杀。然后Service定期启动它。

于 2013-09-23T13:42:55.080 回答