Android频繁调用fusedLocationProviderClient lastKnownLocation耗电量?

Android battery consumption in case of frequent call of fusedLocationProviderClient lastKnownLocation?

我有这个用例,当我点击某个 API 时发送用户的位置。由于此 API 调用频繁,我想避免应用程序的电池消耗。

我可以使用用户的 lastKnownLocation 并发送相同的信息。

fun getLastLocation(): Single<LocationUpdate> {
    return Single.create { emitter ->
        fusedLocationproviderClient.lastLocation.addOnSuccessListener { location ->
            if (location != null) {
                emitter.onSuccess(LocationUpdate.Valid(location.lat, location.long))
            } else {
                emitter.onSuccess(LocationUpdate.UnKnown)
            }
        }
        .addOnFailureListener {
                emitter.tryOnError(it)
       }
    }
}

这个函数 getLastLocation 可以被调用很多次,我读到 fusedLocationproviderClient.lastLocation 是省电的并且不会每次都进行新的 API 调用并且依赖于其他应用程序来获取位置.

想了解并知道,如果可以在应用程序中频繁使用此 getLastLocation 调用并且它的电池效率很高,或者我应该考虑另一种方式,比如缓存它并为其设置到期时间。

lastLocation 只是一个缓存位置,就像你说的那样,是的,只要你理解它是什么,听起来就可以使用