我一直在检查谷歌的文档已有几天了,但我不知道该怎么做。
我头脑中的想法是创建一个在后台(永远)运行的服务,即使设备重启等等(例如,WhatsApp)。这项服务应该在周四每隔30分钟通过互联网(例如)。
但是,我不确定是否要创建经典服务,使用BroadCastReceiver等等。
我想要解释一下我的搜索重点。 我应该使用哪种服务来执行永无止境的任务?
答案 0 :(得分:4)
没有人想要一个在后台永远运行的应用程序。你想要一个定期启动的应用程序(在后台),做到这一点,并再次睡觉。
此外,在Android中,没有任何东西可以“永远”运行。生命周期由Android操作系统处理,这意味着如果它需要资源,它可以杀死您的应用程序。
所以你可以做两件事:
BroadcastReceiver
+ Service
:BR听取Android引导Intent
,然后启动可能无限期运行的服务(使用startService
)。AlarmManager
+ BroadcastReceiver
(+ Service
):按照您希望推出BR的指定时间间隔创建闹钟。然后,无线电通信局可以启动执行繁重工作的Service
。服务完成后应该自杀! IntentService
,因为当没有更多任务时它会自杀
BroadcastReceived
不能单独使用,因为它只能存活几秒钟(10秒)
<强> TL;博士强>
不要制作永久运行的服务。创建一个Service
完成它的任务并在完成后自杀。然后定期启动此Service
。