我了解了Service
和IntentService
之间的差异。
我读到的主要内容是IntentService
有一个 Workerhtread 服务运行。
我需要有一个无论应用程序活动/ ui如何都运行的服务,并跟踪用户位置。
该服务将实施GoogleApiClient.ConnectionCallbacks
,GoogleApiClient.OnConnectionFailedListener
以及LocationListener
,并且在运行时,将一直更新一个包含用户位置的表(直到停止)。
我应该使用Service
还是IntentService
?
答案 0 :(得分:4)
对于可能重复的相对较短的任务,IntentService意味着 fire and forget 服务。另一个重要的区别是当onHandleIntent()
返回时,IntentService会自动停止。常规服务不会停止,除非你(或android os)明确地停止它。听起来你正在计划一个长时间运行的任务,当你的应用程序不在前台时也会运行。
在这种情况下,您肯定希望使用常规服务。您仍然可以选择在单独的线程中执行工作,方法是在服务中创建一个并在那里完成工作,但您不一定要这样做。请记住,默认情况下,服务在主要的thead上运行。