IllegalStateException异常:片段已经添加如果出现一个应用程序是很长的背景 [英] IllegalStateException: Fragment already added appears if a App was very long in the background
问题描述
您好,我使用片段
在我的Android应用程序,但我看到一些奇怪的例外 java.lang.IllegalStateException:已添加的片段
如果出现一个应用程序是很长的背景。
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.
我检查这个 https://开头code .google.com / p /安卓/问题/细节?ID = 61247 ,<一个href=\"http://stackoverflow.com/questions/19441932/java-lang-illegalstateexception-fragment-already-added\">java.lang.IllegalStateException:片段已经添加但如何我可以检查是否片段的情况下,已经添加,当我在 FragmentTabHost $添加
片段
C $ C>
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
来源$ C $ C:
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);
}
}
堆栈跟踪
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)
先谢谢了。
推荐答案
检查片段加入之前就已经存在了:
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
}
这篇关于IllegalStateException异常:片段已经添加如果出现一个应用程序是很长的背景的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!