Kotlin融合位置提供程序多次获取位置更新
使用我的应用程序,我需要每3秒获取一次用户位置 这是我的代码:Kotlin融合位置提供程序多次获取位置更新,kotlin,fusedlocationproviderapi,Kotlin,Fusedlocationproviderapi,使用我的应用程序,我需要每3秒获取一次用户位置 这是我的代码: class MainActivity : AppCompatActivity() { private lateinit var fusedLocationClient : FusedLocationProviderClient private lateinit var locationRequest : LocationRequest private lateinit var locationCallBac
class MainActivity : AppCompatActivity() {
private lateinit var fusedLocationClient : FusedLocationProviderClient
private lateinit var locationRequest : LocationRequest
private lateinit var locationCallBack : LocationCallback
private val LOCATION_PERMISSION_ID = 999
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
updateUI()
startLocationUpdates()
}
private fun updateUI() {
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
locationRequest = LocationRequest.create().apply {
interval = 3000
fastestInterval = 3000
priority = LocationRequest.PRIORITY_HIGH_ACCURACY
}
}
private fun getLocationUpdates(){
locationCallBack = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) {
super.onLocationResult(locationResult)
println("=====" + locationResult.lastLocation.latitude)
}
}
}
private fun startLocationUpdates(){
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
LocationPermissionUtil.requestLocationPermission(this,LOCATION_PERMISSION_ID)
}else{
if(LocationPermissionUtil.isLocationEnabled(this)) {
getLocationUpdates()
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallBack, Looper.getMainLooper())
}else{
LocationPermissionUtil.showGPSAlert(this)
}
}
}
它工作正常,但我注意到应用程序每3秒获取位置5次
这是我的日志
2021-04-23 15:58:51.490 23714-23714/com.mtids I/System.out: =====33.301444
2021-04-23 15:58:51.493 23714-23714/com.mtids I/System.out: =====33.301444
2021-04-23 15:58:51.502 23714-23714/com.mtids I/System.out: =====33.301444
2021-04-23 15:58:51.507 23714-23714/com.mtids I/System.out: =====33.301444
2021-04-23 15:58:51.510 23714-23714/com.mtids I/System.out: =====33.301444
2021-04-23 15:58:52.212 23714-23714/com.mtids I/ViewRootImpl@48baedd[MainActivity]: ViewPostIme pointer 0
2021-04-23 15:58:52.293 23714-23714/com.mtids I/ViewRootImpl@48baedd[MainActivity]: ViewPostIme pointer 1
2021-04-23 15:58:54.496 23714-23714/com.mtids I/System.out: =====33.3014437
2021-04-23 15:58:54.498 23714-23714/com.mtids I/System.out: =====33.3014437
2021-04-23 15:58:54.507 23714-23714/com.mtids I/System.out: =====33.3014437
2021-04-23 15:58:54.510 23714-23714/com.mtids I/System.out: =====33.3014437
2021-04-23 15:58:54.513 23714-23714/com.mtids I/System.out: =====33.3014437
这里怎么了?我需要它每3秒获取一次位置,然后将其发布到数据库