Android - GoogleApiClient - 未在加载片段时连接
Android - GoogleApiClient - Not connecting on the load of fragment
在片段 onCreateview
中,连接 GoogleAPIClient
,但它不会触发 onConnected
调用,但如果我转到另一个片段并返回,它会触发。
Couldnt find why? any help would be appreciated as i got stuck ?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.enableAutoManage(getActivity(), GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle bundle) {
mPlaceArrayAdapter.setGoogleApiClient(mGoogleApiClient);
Log.i(LOG_TAG, "Google Places API connected.");
}
void onCreate (Bundle savedInstanceState)
Called to do initial
creation of a fragment.
您应该添加此 onCreate
部分
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.enableAutoManage(getActivity(), GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
Log.d(TAG, "onCreate");
}
然后
@Override
public void onResume() {
super.onResume();
mGoogleApiClient .connect();
Log.d(TAG, "onResume");
}
这将是检查 onPause()
状态的好方法。
@Override
public void onPause() {
super.onPause();
if (mGoogleApiClient.isConnected())
mGoogleApiClient.disconnect();
Log.d(TAG, "onPause");
}
在片段 onCreateview
中,连接 GoogleAPIClient
,但它不会触发 onConnected
调用,但如果我转到另一个片段并返回,它会触发。
Couldnt find why? any help would be appreciated as i got stuck ?
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.enableAutoManage(getActivity(), GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
mGoogleApiClient.connect();
}
@Override
public void onConnected(Bundle bundle) {
mPlaceArrayAdapter.setGoogleApiClient(mGoogleApiClient);
Log.i(LOG_TAG, "Google Places API connected.");
}
void onCreate (Bundle savedInstanceState)
Called to do initial creation of a fragment.
您应该添加此 onCreate
部分
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.enableAutoManage(getActivity(), GOOGLE_API_CLIENT_ID, this)
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
Log.d(TAG, "onCreate");
}
然后
@Override
public void onResume() {
super.onResume();
mGoogleApiClient .connect();
Log.d(TAG, "onResume");
}
这将是检查 onPause()
状态的好方法。
@Override
public void onPause() {
super.onPause();
if (mGoogleApiClient.isConnected())
mGoogleApiClient.disconnect();
Log.d(TAG, "onPause");
}