【发布时间】:2016-10-25 16:34:28
【问题描述】:
我在项目中使用的播放服务是:
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.google.android.gms:play-services-analytics:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
我从来没有自己打电话给GoogleApiAvailability,但我想当我使用 gcm 或 google 登录时,我的应用程序似乎因为可用性检查而崩溃。
Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:139)
at com.google.android.gms.common.SupportErrorDialogFragment.show(Unknown Source)
at com.google.android.gms.common.GoogleApiAvailability.zza(Unknown Source)
at com.google.android.gms.common.GoogleApiAvailability.zza(Unknown Source)
at com.google.android.gms.internal.zzpn$zza.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
看起来,当播放服务出现一些问题时,它应该向用户显示任何对话框,但我的应用程序已经不在前台,所以 onSaveInstanceState 已经发生并且一些回调显示错误对话框 rasie IllegalStateException .
【问题讨论】:
-
在 onStart 中注册回调。在 onStop 中取消注册回调。在生命周期方法中调用 super。利润。
标签: android google-play-services