服务 vs IntentService 在位置跟踪服务的情况下
Service vs IntentService in a case of location tracking service
我读到了 Service
和 IntentService
之间的区别。
我读到的主要内容是 IntentService
有一个 Workerhtread,服务 运行 位于其中。
我需要一个 运行 与应用程序 activities/ui 无关的服务,并跟踪用户位置。
该服务将实现 GoogleApiClient.ConnectionCallbacks
、GoogleApiClient.OnConnectionFailedListener
以及 LocationListener
,并且在 运行ning 时,将更新 table用户一直(直到停止)。
我应该使用 Service
还是 IntentService
?
IntentService 是一种即发即弃 服务,适用于可能重复的相对较短的任务。另一个重要的区别是 IntentService 在 onHandleIntent()
returns 时自行停止。除非您(或 android os)明确停止,否则常规服务不会停止 it.It 听起来您正在计划一项长期的 运行 任务,该任务也会在您运行时运行应用程序不在前台。
在这种情况下,您肯定希望使用常规服务。您仍然可以选择ose 在单独的线程中执行工作,方法是在服务内部创建一个线程并在其中执行工作,但您不一定非得这样做。请记住,默认情况下,服务在主线程上运行。
我读到了 Service
和 IntentService
之间的区别。
我读到的主要内容是 IntentService
有一个 Workerhtread,服务 运行 位于其中。
我需要一个 运行 与应用程序 activities/ui 无关的服务,并跟踪用户位置。
该服务将实现 GoogleApiClient.ConnectionCallbacks
、GoogleApiClient.OnConnectionFailedListener
以及 LocationListener
,并且在 运行ning 时,将更新 table用户一直(直到停止)。
我应该使用 Service
还是 IntentService
?
IntentService 是一种即发即弃 服务,适用于可能重复的相对较短的任务。另一个重要的区别是 IntentService 在 onHandleIntent()
returns 时自行停止。除非您(或 android os)明确停止,否则常规服务不会停止 it.It 听起来您正在计划一项长期的 运行 任务,该任务也会在您运行时运行应用程序不在前台。
在这种情况下,您肯定希望使用常规服务。您仍然可以选择ose 在单独的线程中执行工作,方法是在服务内部创建一个线程并在其中执行工作,但您不一定非得这样做。请记住,默认情况下,服务在主线程上运行。