位置跟踪服务

时间:2016-09-30 15:18:07

标签: android multithreading location android-service android-intentservice

我了解了ServiceIntentService之间的差异。

我读到的主要内容是IntentService有一个 Workerhtread 服务运行。

我需要有一个无论应用程序活动/ ui如何都运行的服务,并跟踪用户位置。

该服务将实施GoogleApiClient.ConnectionCallbacksGoogleApiClient.OnConnectionFailedListener以及LocationListener,并且在运行时,将一直更新一个包含用户位置的表(直到停止)。

我应该使用Service还是IntentService

1 个答案:

答案 0 :(得分:4)

对于可能重复的相对较短的任务,IntentService意味着 fire and forget 服务。另一个重要的区别是当onHandleIntent()返回时,IntentService会自动停止。常规服务不会停止,除非你(或android os)明确地停止它。听起来你正在计划一个长时间运行的任务,当你的应用程序不在前台时也会运行。

在这种情况下,您肯定希望使用常规服务。您仍然可以选择在单独的线程中执行工作,方法是在服务中创建一个并在那里完成工作,但您不一定要这样做。请记住,默认情况下,服务在主要的thead上运行。