我想在 android 应用程序中实现一种 GPS 跟踪。为此,我有一个MainActivtity
在不同的Fragments
. 其中之一是HomeFragment
,它扩展android.app.Fragment
并包含一个MapView
和 `GoogleAPIClient.
我使用以下代码请求位置更新:
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(LocationHelper.LOCATION_CHECK_INTERVAL_MILLI);
mLocationRequest.setFastestInterval(LocationHelper.FASTEST_LOCATION_CHECK_INTERVAL_MILLI);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(mLocationRequest);
LocationServices.FusedLocationApi.requestLocationUpdates(mApiClient, mLocationRequest, this);
因此,如果应用程序在前台运行,我会根据需要获得位置更新。但是如果应用程序在后台,我就不会再得到任何更新了。我读到您必须通过在例如 onPause() 方法中删除 then 来明确告诉 API 暂停位置更新,但我没有这样做,因此期待它们。
我也尝试为此实现一个服务,但后来读到这些位置已经在服务中获取。此外,我无法想象由于片段/活动生命周期,这甚至可能起作用。
亲切的问候, Force0234