Google Location API - 当应用在后台时,以片段形式获取位置更新

时间:2017-01-14 11:56:59

标签: java android android-fragments android-gps google-location-services

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

0 个答案:

没有答案