在我的应用场景中,我想在应用的整个生命周期中保留Started Service
。在此服务中,我必须使用FusedLocationProviderClient
和LocationServices api
来请求位置更新(确切地说,在onStartCommand
方法中)。每当新的" 位置更新"收到后,更新后的位置将保存到PreferenceManager
。
当用户从应用中退出时,我会停止此Started Service
。
我是否需要在新HandlerThread
中处理此位置更新逻辑(您知道,因为已启动服务在主线程上运行)?
从我的观点来看,由于FusedLocationProviderClient.requestLocationUpdates
(来自LocationServices Api)方法是非阻塞调用并基于异步编程模型,我认为在我的场景中不需要HandlerThread
。
P.S。我从GoogleSample获取了参考资料。在该示例中,它们演示了绑定服务,该服务也已启动(在未绑定客户端时不会结束)。他们也没有实现HandlerThread的实际逻辑来获取位置更新。
答案 0 :(得分:2)
这取决于“新位置”事件触发时您的操作。
你做重处理还是网络通话? - >单独的线程。你做的只需要几毫秒的简单东西吗? - >你运行它们的哪些线程并不重要。