在Fragment中使用GoogleApiClient递归进入executePendingTransactions

Shu*_*ham 3 android google-api-client android-fragments google-places-api

我正在尝试在我的应用中使用Place Autocomplete API.我有一个主要的Activity.我有一个是Fragment其中的一部分MainActivity.在OnViewCreated()Fragment.

 private void rebuildGoogleApiClient() {
    // When we build the GoogleApiClient we specify where connected and connection failed
    // callbacks should be returned and which Google APIs our app uses.
    mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
            .enableAutoManage(activity, 0 /* clientId */, this)
            .addConnectionCallbacks(this)
            .addApi(Places.GEO_DATA_API)
            .build();
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Caused by: java.lang.IllegalStateException: Recursive entry to executePendingTransactions
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1471)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:488)
        at com.google.android.gms.common.api.zzl.zza(Unknown Source)
        at com.google.android.gms.common.api.GoogleApiClient$Builder.zzkL(Unknown Source)
        at com.google.android.gms.common.api.GoogleApiClient$Builder.build(Unknown Source)
        at com.app.projectpapri.Fragments.LocationScreen.rebuildGoogleApiClient(LocationScreen.java:69)
        at com.app.projectpapri.Fragments.LocationScreen.onViewCreated(LocationScreen.java:93)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:971)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
        at com.app.projectpapri.core.BaseActivity.onStart(BaseActivity.java:38)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1243)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Fra*_*uts 6

而不是调用的rebuildGoogleApiClient()onViewCreated(),尝试调用它在你的片段的onActivityCreated()方法.

有关片段生命周期的更多信息,请参阅http://developer.android.com/reference/android/app/Fragment.html#Lifecycle.

如果仍然无效,您可以删除并显式enableAutoManage(...)调用该实例.connect()disconnect()GoogleApiClient

有关详细信息,请参阅https://developers.google.com/places/android/start#connect-client.

这有帮助吗?