致命异常:java.lang.RuntimeException:无法恢复活动

时间:2016-01-28 06:38:47

标签: android android-activity android-fragmentactivity runtimeexception onresume

以下是我的日志重新发布

  

致命异常:java.lang.RuntimeException:无法恢复活动{com.maruticourier.android/com.marutideliver.activity.MainActivity}:java.lang.IllegalStateException:onSaveInstanceState后无法执行此操作          在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3069)          在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3098)          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1350)          在android.os.Handler.dispatchMessage(Handler.java:102)          在android.os.Looper.loop(Looper.java:146)          在android.app.ActivityThread.main(ActivityThread.java:5653)          at java.lang.reflect.Method.invokeNative(Method.java)          在java.lang.reflect.Method.invoke(Method.java:515)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1291)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)          在dalvik.system.NativeStart.main(NativeStart.java)   由java.lang.IllegalStateException引起:在onSaveInstanceState之后无法执行此操作          在android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1365)          在android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1383)          在android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)          在android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)          at com.marutideliver.activity.MainActivity.selectItem(MainActivity.java:485)          在com.marutideliver.activity.MainActivity.onResume(MainActivity.java:810)          在android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1198)          在android.app.Activity.performResume(Activity.java:5620)          在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3059)          在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3098)          在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1350)          在android.os.Handler.dispatchMessage(Handler.java:102)          在android.os.Looper.loop(Looper.java:146)          在android.app.ActivityThread.main(ActivityThread.java:5653)          at java.lang.reflect.Method.invokeNative(Method.java)          在java.lang.reflect.Method.invoke(Method.java:515)          在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1291)          在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)          在dalvik.system.NativeStart.main(NativeStart.java)

4 个答案:

答案 0 :(得分:1)

你可能有一个非静态子类(我猜它是一个片段),你的活动每次恢复时都无法实例化。如果您有这样的子类,只需将其设置为静态。

答案 1 :(得分:0)

这是支持包中的错误。为避免这种情况,您可以在片段事务处理期间使用以下内容。

transaction.commitAllowingStateLoss();

如果你谷歌它,你会找到许多好的答案。有关更多参考和替代方法,请参阅此SO post和此SO post。希望它有所帮助。

答案 2 :(得分:0)

可能是因为使用add()方法多次使用公共方法,如

 public void beginTransaction(ID id, Bundle bundle)

避免使用

fragmentmanager.begintransaction().add
每次

也可以将其用于替换

fragmentmanager.begintransaction().replace(r.id.frame_container, fragment).commit()

答案 3 :(得分:-1)

可能是因为没有覆盖onResume()方法,你必须覆盖并恢复上一个商店的保存实例