IllegalStateException: Fragment already added appears if a App was very long in the background
android, android-fragments, fragment
Solution
Check if the fragment already exists before adding :
Fragment f = mManager.findFragmentById(R.id.fragment_id);
if(f != null && f instanceof FragmentClassName) {
//Fragment already exists
} else {
//Add Fragment
}
Problem
Hello I am using `fragment` in my android application but I see some strange exception `java.lang.IllegalStateException: Fragment already added` appears if a App was very long in the background. I checked this https://code.google.com/p/android/issues/detail?id=61247, java.lang.IllegalStateException: Fragment already added but how this I can check whether fragment is already added in case when I add the `fragment` in the `FragmentTabHost` Source Code : ``` public class FirstFragment extends SherlockFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mTabHost = new FragmentTabHost(getSherlockActivity()); mTabHost.setup(getSherlockActivity(), getChildFragmentManager(), R.layout.registration); // Create Child Tab1 mTabHost.addTab(mTabHost.newTabSpec("child1").setIndicator("Registration"), RegistrationFragment.class, null); } } ``` StackTrace ``` java.lang.IllegalStateException: Fragment already added: RegistrationFragment{424d19f8 #0 id=0x7f0600b8 child1 } at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1175) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:616) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:556) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) at android.app.Activity.performStart(Activity.java:5143) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) ``` Thanks in advance.