Android - GoogleApiClient - не подключается при загрузке фрагмента - PullRequest
0 голосов
/ 26 апреля 2018

Во фрагменте onCreateview, соединяющий GoogleAPIClient, но не вызывающий onConnected вызов, а его срабатывание, если я иду к другому фрагменту и возвращаюсь.

Не можете найти почему?любая помощь будет оценена, как я застрял?

@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.");
 }

1 Ответ

0 голосов
/ 26 апреля 2018

void onCreate (Bundle savedInstanceState) Вызывается для первоначального создания фрагмента.

Вы должны добавить это 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");
    }
...