Android 已在FragmentTransaction.commit()上销毁活动

Android 已在FragmentTransaction.commit()上销毁活动,android,android-fragments,android-fragmentactivity,fragmenttransaction,Android,Android Fragments,Android Fragmentactivity,Fragmenttransaction,我正在尝试使用一些搜索结果中找到的常用方法,向我的ViewPager动态添加一个片段,我尝试了两种方法: 第一个来自作为ViewPager父级的活动: Light_Center fragment = new Light_Center(); // the Fragment Activity FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); ft.add(

我正在尝试使用一些搜索结果中找到的常用方法,向我的
ViewPager
动态添加一个片段,我尝试了两种方法:

第一个来自作为ViewPager父级的活动:

Light_Center fragment = new Light_Center(); // the Fragment Activity
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(fragment, "num_" + i);
ft.commit(); // this is where i got the Exception
第二个来自片段活动本身(Light_Center.Class):

这两种方法在
commit()
行中给了我相同的异常:

04-29 12:46:04.099: E/AndroidRuntime(1307): FATAL EXCEPTION: main
04-29 12:46:04.099: E/AndroidRuntime(1307): java.lang.IllegalStateException: Activity has been destroyed
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at com.automation.isolace.Lighting$11.onClick(Lighting.java:339)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.view.View.performClick(View.java:4084)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.view.View$PerformClick.run(View.java:16966)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Handler.handleCallback(Handler.java:615)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Looper.loop(Looper.java:137)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invokeNative(Native Method)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invoke(Method.java:511)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)

我在StackOverFlow上发现了许多问题,这些问题代表了相同的异常,但与我使用的方式不同。

发生的事情是,您正在开始
getChildFragmentManager().beginTransaction()
,在您能够执行
.commit()
之前,您的活动或片段正在被销毁。我也有类似的问题。在提交之前,您需要检查您的状态并确保事情仍然存在。发生此错误时,应用程序中还发生了什么?

您在哪里创建碎片事务?看起来它是在活动完成时完成的。@jmcdonnell40我创建它是由于onClick的结果,单击操作发生在活动的另一个片段中。只是出于好奇,请将commit()更改为committellowingstateloss(),看看是否有效?@jmcdonnell40在这两种情况下,在同一行中出现相同的错误
04-29 12:46:04.099: E/AndroidRuntime(1307): FATAL EXCEPTION: main
04-29 12:46:04.099: E/AndroidRuntime(1307): java.lang.IllegalStateException: Activity has been destroyed
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at com.automation.isolace.Lighting$11.onClick(Lighting.java:339)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.view.View.performClick(View.java:4084)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.view.View$PerformClick.run(View.java:16966)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Handler.handleCallback(Handler.java:615)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.os.Looper.loop(Looper.java:137)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invokeNative(Native Method)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at java.lang.reflect.Method.invoke(Method.java:511)
04-29 12:46:04.099: E/AndroidRuntime(1307):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)