Kotlin融合位置提供程序多次获取位置更新

Kotlin融合位置提供程序多次获取位置更新,kotlin,fusedlocationproviderapi,Kotlin,Fusedlocationproviderapi,使用我的应用程序,我需要每3秒获取一次用户位置 这是我的代码: class MainActivity : AppCompatActivity() { private lateinit var fusedLocationClient : FusedLocationProviderClient private lateinit var locationRequest : LocationRequest private lateinit var locationCallBac

使用我的应用程序,我需要每3秒获取一次用户位置

这是我的代码:

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秒获取一次位置,然后将其发布到数据库