我对Kotlin有点新,所以这可能是一个超级容易的修复。基本上,我遵循了一个教程来获得gps位置使用fusedLocationProviderClient和我试图停止looper一旦它找到一个位置(iidoe.com)。我想让它找到一个位置然后停下来)。我对loopers不是很熟悉,但是我如何创建一个与fusedLocationProviderClient一起工作的looper,在找到一个位置后可以退出。
下面是代码:
private fun setUpLocationListener() {
checkSmsPermission(PERMISSION_FINE_LOCATION)
val fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
// for getting the current location update after every 2 seconds with high accuracy
val locationRequest = LocationRequest().setInterval(2000).setFastestInterval(2000)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
fusedLocationProviderClient.requestLocationUpdates(
locationRequest,
object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) {
Log.d(TAG, "Location found")
super.onLocationResult(locationResult)
for (location in locationResult.locations) {
Log.d(TAG, location.latitude.toString())
Log.d(TAG,location.longitude.toString())
}
if (locationResult.locations.size > 0){
// I want to quit here
}
}
},
Looper.myLooper()!!
)
}
大多数情况下,我认为我需要一点帮助,如何使用loopers与fusedLocationProviderClient创建一个looper,我可以退出从里面。
先谢谢你的帮助
2条答案
按热度按时间bgtovc5b1#
您可以从
fusedClient
发送removeLocationUpdates
以停止接收更新wn9m85ua2#
对于那些可能和我有同样问题的人,我是这样做的:对于位置请求变量,我只是删除了“.setInterval(2000).setFastestInterval(2000)"。显然,启用这些功能后,GPS位置总是会被重新找到。