您的位置:首页 > 其它

onBackPressed:Can not perform this action after onSaveInstanceState

2016-03-26 11:09 441 查看
<span style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;">03-25 15:59:38.958: E/AndroidRuntime(18826): FATAL EXCEPTION: main</span>


<pre style="word-wrap: break-word; white-space: pre-wrap;">03-25 15:59:38.958: E/AndroidRuntime(18826): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.jieli.stream.player_device_connection_success flg=0x10 } in com.jieli.stream.player.ui.activity.TimeActivity$1@414c74c0
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:798)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.os.Handler.handleCallback(Handler.java:725)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.os.Handler.dispatchMessage(Handler.java:92)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.os.Looper.loop(Looper.java:153)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.app.ActivityThread.main(ActivityThread.java:5374)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at java.lang.reflect.Method.invokeNative(Native Method)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at java.lang.reflect.Method.invoke(Method.java:511)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at dalvik.system.NativeStart.main(Native Method)
03-25 15:59:38.958: E/AndroidRuntime(18826): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1377)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:504)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:178)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at com.jieli.stream.player.ui.activity.TimeActivity.onBackPressed(TimeActivity.java:296)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at com.jieli.stream.player.ui.activity.TimeActivity$1.onReceive(TimeActivity.java:77)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:788)
03-25 15:59:38.958: E/AndroidRuntime(18826): 	... 9 more




APP从后台回来,连接成功后,发出广播调用onBackPressed,报上面的 错误

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (intent.getAction()){
case ACTION_CONNECTION_SUCCESS:
onBackPressed();
break;
}
}
};


public void onBackPressed() {
....
super.onBackPressed();
}


原因是activity从后台回来可能还处于onpause或onstop,便调用了onBackPressed

去掉super.onBackPressed(); 直接finish()

ref
http://stackoverflow.com/questions/32382507/can-not-perform-this-action-after-onsaveinstancestate-on-super-onbackpressed
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: