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

标签 android multithreading location android-service android-intentservice

我了解了 ServiceIntentService 之间的区别。

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

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

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

我应该使用 Service 还是 IntentService

最佳答案

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

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

关于android - 服务 vs IntentService 在位置跟踪服务的情况下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794853/

相关文章:

Java如何在不使用future.get且不阻塞父线程的情况下使线程超时

到达位置时iOS本地通知

android - 当我尝试向模拟器发送位置更新时,我收到一条错误消息

android - 如何获取用户的国家/地区位置?

java - 为什么我在 dato2 中看到 "null"返回我的第二个 Activity ?

android - 当我在媒体播放器中单击 ListView 时,正在播放多首歌曲

android - 如何在android中用不透明度填充矩形

java - 带有通用图像加载器的 FileNotFoundException

c# - 无法从其他 STA 线程调用从 STAThread 创建的 COM 对象

c# - 如何处理后台线程上的事件?