Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 位置跟踪服务中的服务与IntentService_Android_Multithreading_Location_Android Service_Android Intentservice - Fatal编程技术网

Android 位置跟踪服务中的服务与IntentService

Android 位置跟踪服务中的服务与IntentService,android,multithreading,location,android-service,android-intentservice,Android,Multithreading,Location,Android Service,Android Intentservice,我读到了服务和IntentService之间的区别 我读到的主要内容是,IntentService有一个运行该服务的workerstread 我需要一个不管应用程序活动/ui如何运行的服务,并跟踪用户位置 该服务将实现GoogleAppClient.ConnectionCallbacks,GoogleAppClient.OnConnectionFailedListener和LocationListener,并且在运行时,将始终使用用户的位置更新表(直到停止) 我应该使用服务还是IntentSer

我读到了
服务
IntentService
之间的区别

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

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

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


我应该使用
服务
还是
IntentService

IntentService是指在相对较短的时间内可以重复执行的服务。另一个重要区别是,当
onHandleIntent()
返回时,IntentService会自动停止。除非你(或安卓操作系统)明确停止,否则常规服务不会停止。这听起来像是你在计划一项长期运行的任务,当你的应用程序不在前台时,它也会运行


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

感谢您提供了详细解释的答案。我想我会使用常规服务,也许会在那里开始一个线程来跟踪位置。还有一个问题-我确实有一个上面有谷歌地图的片段,我想在位置发生变化时通知片段,以便它可以绘制新位置。我正在考虑通过广播自定义意图来实现这一点,并让一个接收器在我的片段中收听它们。听起来可以吗?是的,听起来可以