我想在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);
因此,如果应用程序在前台运行,我会根据需要获取位置更新。但如果应用程序在后台,我不再获得任何更新。我读过你必须明确告诉API暂停位置更新,然后在例如onPause() - 方法,但我没有这样做,因此期望它们。
我还试图为此实现一项服务,但后来读到这些位置已经在服务中获取。 此外,我无法想象由于片段/活动生命周期,这甚至可能起作用。
亲切的问候, Force0234