Android checkLocationSettings从未在onResume中调用过
问题描述:
我遇到了一个奇怪的问题。Android checkLocationSettings从未在onResume中调用过
我与LocationServices的例子玩耍,我发现,如果我试图调用LocationServices.SettingsApi.checkLocationSettings在的onResume活动的,回调不会被调用。
我已经修改了应用程序启动时自动启动的定位的活动,并且该流程是:
- 启动应用程序;
- 启用(如果需要)本地化;
- 把应用程序放在后台;
- 禁用本地化服务;
- 恢复应用程序。
在最后一步,我期待看到对话框中有一个启用本地化的请求,但这种情况从未发生过。
奇怪的是,当第一次启动应用程序时,它完美地工作。
有人遇到过这个?
编辑:
public synchronized void checkLocationSettings() {
PendingResult<LocationSettingsResult> result =
LocationServices.SettingsApi.checkLocationSettings(
mGoogleApiClient,
mLocationSettingsRequest
);
Log.e(TAG, "check");
result.setResultCallback(this);
}
ResultCallback:
@Override
public void onResult(LocationSettingsResult locationSettingsResult) {
final Status status = locationSettingsResult.getStatus();
Log.e(TAG, status.toString());
switch (status.getStatusCode()) {
case LocationSettingsStatusCodes.SUCCESS:
Log.i(TAG, "All location settings are satisfied.");
startLocationUpdates();
break;
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to" +
"upgrade location settings ");
showDialogToCheckSettings(status);
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog " +
"not created.");
listener.impossibleToEnable();
break;
}
}
Log.e(TAG,status.toString())从未在的onResume
答
叫我发现了问题。
该回调未被调用,因为我忘记了在onResume中调用mGoogleApiClient.connect()
。
请问您可以发布检查设置的代码 – Krutik