1

我想在 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

4

0 回答 0