获取java.lang.IllegalStateException:恢复活动时没有活动

时间:2013-03-19 11:28:08

标签: android android-fragments android-lifecycle

我在其中一项活动中遇到了一个奇怪的错误。我无法弄清楚为什么会这样。

我有Activity向用户显示搜索结果。当他点击其中一个时,会显示该结果的详细页面,当他关闭Activity时,它会返回搜索结果屏幕。它在大多数情况下都可以正常工作,除了某些设备在Activity恢复后立即崩溃。

堆栈跟踪也没用,因为它是由支持片段管理器在内部抛出的。

03-18 15:32:48.987: E/AndroidRuntime(26456): FATAL EXCEPTION: main
03-18 15:32:48.987: E/AndroidRuntime(26456): java.lang.IllegalStateException: No activity
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.support.v4.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:1871)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.support.v4.app.FragmentActivity.onResumeFragments(FragmentActivity.java:455)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.support.v4.app.FragmentActivity$1.handleMessage(FragmentActivity.java:91)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.os.Looper.loop(Looper.java:150)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at android.app.ActivityThread.main(ActivityThread.java:4333)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at java.lang.reflect.Method.invokeNative(Native Method)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at java.lang.reflect.Method.invoke(Method.java:507)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
03-18 15:32:48.987: E/AndroidRuntime(26456):    at dalvik.system.NativeStart.main(Native Method)
03-18 15:32:48.987: W/ActivityManager(241):   Force finishing activity com.my.app/.SearchActivity

我的Activity正在延长FragmentActivity,但这只是因为我需要使用LoaderManager。由于我的应用程序必须支持Android 2.3,因此移至标准库是不可能的。

我已尝试更新到较新版本的支持库,并恢复到旧版本,但没有运气。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

没关系,我得到了答案 - 它和THIS一样。

有人在详细信息页面中覆盖了onWindowFocusChanged(boolean hasFocus),但却拨打了super.onResume()。我确实希望错误信息更清楚。

答案 1 :(得分:0)

在我的情况下,这是由于活动自动重启,所以只需设置启动模式单一任务