Service vs IntentService 在位置跟踪服务的情况下

Ofe*_*mon 3 multithreading android location android-service android-intentservice

我读到之间的差异ServiceIntentService

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

我需要一个服务,不管应用程序的活动/用户界面如何运行,并跟踪用户位置。

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

我应该使用Service还是IntentService

Tim*_*Tim 5

IntentService 旨在成为一个即发即忘的服务,用于可能重复的相对较短的任务。另一个重要的区别是 IntentService 在onHandleIntent() 返回时会自行停止。除非您(或 android 操作系统)明确停止,否则常规服务不会停止。听起来您正在计划一个长期运行的任务,该任务也会在您的应用不在前台时运行。

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