Android:android服务中的stopSelf在退出之前不会给onLocationChanged一个机会

时间:2012-07-21 18:03:42

标签: android android-service locationmanager

我已经设置了一个基本上每15分钟运行一次的服务,并在GPS提供商上执行requestLocationUpdates。我在服务中设置了监听器。

现在当onStartCommand方法结束时,我做了一个stopSelf,因为我希望服务终止,因为我知道在另外15分钟它会再次使用AlarmManager启动。

但是服务在侦听事件到达之前退出了位置信息。

如果我将stopSelf评论为收到该位置。

如何让服务等到收到位置。我想在onLocationChanged事件中放置stopSelf,但它可能并不总是触发。

其他方式我实现了线程睡眠,但这感觉就像代码味道

任何指针都非常感激

由于

1 个答案:

答案 0 :(得分:0)

要获取一个位置,请使用LocationManager.requestSingleUpdate()并在onLocationChanged()中调用service.stopSelf()。如果您担心无限期地搜索GPS(可能是用户在洞穴中),请设置计时器并在超过特定时间段时停止服务。