Android 应用程序处于多窗口时发生非法状态异常

Android 应用程序处于多窗口时发生非法状态异常,android,illegalstateexception,android-7.0-nougat,multi-window,Android,Illegalstateexception,Android 7.0 Nougat,Multi Window,当我的应用程序在多窗口中时,它在android N+中崩溃。但这个当前唯一的主要活动实际上是活动,其他活动不会崩溃。我的MainActivity有tabs片段,其中一个有childfragment,我现在不知道这是否相关,但我有一个LocationService在后台运行。就在下面,异常正在生成 java.lang.RuntimeException: at android.app.ActivityThread.performResumeActivity (ActivityThread.ja

当我的应用程序在多窗口中时,它在android N+中崩溃。但这个当前唯一的主要活动实际上是活动,其他活动不会崩溃。我的MainActivity有tabs片段,其中一个有childfragment,我现在不知道这是否相关,但我有一个LocationService在后台运行。就在下面,异常正在生成

java.lang.RuntimeException: 
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:3421)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3461)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2730)
  at android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:4524)
  at android.app.ActivityThread.-wrap19 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1479)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6123)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:867)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:757)
Caused by: java.lang.IllegalStateException: 
  at android.support.v4.app.FragmentManagerImpl.ensureExecReady (FragmentManager.java:1956)
  at android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2007)
  at android.support.v4.app.Fragment.performStart (Fragment.java:2214)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1340)
  at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1528)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1595)
  at android.support.v4.app.FragmentManagerImpl.dispatchResume (FragmentManager.java:2914)
  at android.support.v4.app.FragmentController.dispatchResume (FragmentController.java:223)
  at android.support.v4.app.FragmentActivity.onResumeFragments (FragmentActivity.java:509)
  at android.support.v4.app.FragmentActivity.onPostResume (FragmentActivity.java:498)
  at android.support.v7.app.AppCompatActivity.onPostResume (AppCompatActivity.java:172)
  at android.app.Activity.performResume (Activity.java:6800)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:3398)

您是否正在处理活动中的任何保存/还原操作?当应用程序进入多窗口模式时,系统会调用
onDestroy()
,然后调用
onCreate()
,因为维度已更改,需要重新创建活动来处理此更改。现在我猜您正在使用某种PagerAdapter来管理选项卡,如果确实是这样,请您在活动的
onCreate()
方法上测试一下:
super.onCreate(null)
然后重写onRestoreInstanceState()并删除
super
调用。这只是为了看看这是否是崩溃的原因。您是否正在处理活动中的任何保存/还原操作?当应用程序进入多窗口模式时,系统会调用
onDestroy()
,然后调用
onCreate()
,因为维度已更改,需要重新创建活动来处理此更改。现在我猜您正在使用某种PagerAdapter来管理选项卡,如果确实是这样,请您在活动的
onCreate()
方法上测试一下:
super.onCreate(null)
然后重写onRestoreInstanceState()并删除
super
调用。这只是为了看看这是否是坠机的原因。