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 只是一个缓存位置,就像你说的那样,是的,只要你理解它是什么,听起来就可以使用
我有这个用例,当我点击某个 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 只是一个缓存位置,就像你说的那样,是的,只要你理解它是什么,听起来就可以使用