Android启动服务,带位置服务Api的处理程序线程

时间:2017-07-31 17:46:22

标签: android android-location android-handler

在我的应用场景中,我想在应用的整个生命周期中保留Started Service。在此服务中,我必须使用FusedLocationProviderClientLocationServices api来请求位置更新(确切地说,在onStartCommand方法中)。每当新的" 位置更新"收到后,更新后的位置将保存到PreferenceManager

当用户从应用中退出时,我会停止此Started Service

我是否需要在新HandlerThread中处理此位置更新逻辑(您知道,因为已启动服务在主线程上运行)?

从我的观点来看,由于FusedLocationProviderClient.requestLocationUpdates(来自LocationServices Api)方法是非阻塞调用并基于异步编程模型,我认为在我的场景中不需要HandlerThread

P.S。我从GoogleSample获取了参考资料。在该示例中,它们演示了绑定服务,该服务也已启动(在未绑定客户端时不会结束)。他们也没有实现HandlerThread的实际逻辑来获取位置更新。

1 个答案:

答案 0 :(得分:2)

这取决于“新位置”事件触发时您的操作。

你做重处理还是网络通话? - >单独的线程。你做的只需要几毫秒的简单东西吗? - >你运行它们的哪些线程并不重要。