0

내가 동적으로 좀 검색의 결과로 볼 수있는 일반적인 방법을 사용하여 내 ViewPager에 조각을 추가하기 위해 노력하고있어 파괴되어, 나는 두 가지 방법을 시도활동이 FragmentTransaction.commit()

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) 내지 :

FragmentManager childFragMan = getChildFragmentManager(); 
FragmentTransaction childFragTrans = childFragMan.beginTransaction(); 
Light_Center fragB = new Light_Center(); 
childFragTrans.add(R.id.light_center_fragment, fragB); 
childFragTrans.addToBackStack("B"); 
childFragTrans.commit(); // this is where i got the Exception 

두 가지 방법 ViewPager의 부모 활동 내지 나에게 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) 

를 나는 내가 사용하는 방식과 같은 예외하지만도를 대표 유래에 질문을 많이 발견했다.

+0

FragmentTransaction은 어디에 생성합니까? 활동이 완료되는 동안 완료되는 것 같습니다. – jmcdonnell40

+0

@ jmcdonnell40 나는 onClick의 결과로 그것을 만들고 있는데, 클릭 동작은 Activity의 다른 조각에서 발생합니다. –

+0

호기심에서 벗어나 commit()을 commitAllowingStateLoss()로 변경하고 작동하는지 확인하십시오. – jmcdonnell40

답변

0

getChildFragmentManager().beginTransaction()이 (가) 시작되어 .commit() 번을 실행하기 전에 어떤 일이 일어나고 있습니까? 아니면 조각이 파괴되고 있습니다. 나는 비슷한 문제가있다. 당신은 당신의 상태를 점검 할 필요가있을 것이고, 사물들이 여전히 커미트되기 전에 여전히 주위에 있는지 확인해야 할 것입니다. 이 오류가 발생하면 앱에서 다른 일이 발생하고 있습니까?

관련 문제