我有一个在应用程序启动或手机启动时启动的服务。
在onCreate中,我定义了请求位置更新的参数:
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 8046, this);
我的理解是,如果5分钟过去或用户移动超过5英里,它现在只会提供更新。我实际得到的是每分钟或更短时间的更新。 300000数字是5分钟(以毫秒为单位),8046是5英里(以米为单位)。 我知道服务通常不会被调用,因为它会在服务首次启动时创建一个toast并且不会一直显示。
任何人都可以帮助这个吗?
答案 0 :(得分:1)
来自http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(long requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
的文档,float,android.location.Criteria,android.app.PendingIntent)
在Jellybean之前,minTime参数只是一个提示,一些位置提供程序实现忽略了它。从Jellybean开始,Android兼容设备必须同时观察minTime和minDistance参数。
提供者可能也忽略了距离限制。