📅  最后修改于: 2023-12-03 15:00:51.902000             🧑  作者: Mango
fusedLocationClient.removeLocationUpdates() - CSS
fusedLocationClient.removeLocationUpdates()
是一个用于移除位置更新的方法,常用于停止位置更新以节省设备电量。本方法是 Android Fused Location 的一部分,且需要 Google Play Services。
public void removeLocationUpdates (LocationCallback callback)
callback
:用于接收位置更新的 LocationCallback 对象。以下示例以 Kotlin 语言为例。
import com.google.android.gms.location.LocationServices
class MainActivity : AppCompatActivity() {
private lateinit var fusedLocationClient: FusedLocationProviderClient
private lateinit var locationCallback: LocationCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult?) {
// 处理位置更新信息
}
}
}
override fun onResume() {
super.onResume()
startLocationUpdates()
}
override fun onPause() {
super.onPause()
stopLocationUpdates()
}
private fun startLocationUpdates() {
val locationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(10000)
.setFastestInterval(5000)
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, null)
}
private fun stopLocationUpdates() {
fusedLocationClient.removeLocationUpdates(locationCallback)
}
}
以上示例创建了一个 LocationCallback
对象作为位置更新的回调方法,在 onResume()
方法中启动位置更新,在 onPause()
方法中停止位置更新。
ACCESS_COARSE_LOCATION
或 ACCESS_FINE_LOCATION
权限。build.gradle
中添加以下依赖:dependencies {
implementation 'com.google.android.gms:play-services-location:17.0.0'
}