java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity

A.处理异常java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity
处理方式:由于在线程中调用Fragment以下方法会出现fragment已经没有附加到activity,
所以在调用这些方法时候加isAdded()判断
Fragment源码
--------------------1-----------------------------
public final Resources getResources()
{
if (this.mActivity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to Activity");
}
return this.mActivity.getResources();
}

public final CharSequence getText(int resId)
{
return getResources().getText(resId);
}

public final String getString(int resId)
{
return getResources().getString(resId);
}

public final String getString(int resId, Object[] formatArgs)
{
return getResources().getString(resId, formatArgs);
}
-----------------2--------------------
public LoaderManager getLoaderManager()
{
if (this.mLoaderManager != null) {
return this.mLoaderManager;
}
if (this.mActivity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to Activity");
}
this.mCheckedForLoaderManager = true;
this.mLoaderManager = this.mActivity.getLoaderManager(this.mWho, this.mLoadersStarted, true);
return this.mLoaderManager;
}
-----------------3--------------------
public void startActivity(Intent intent)
{
if (this.mActivity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to Activity");
}
this.mActivity.startActivityFromFragment(this, intent, -1);
}
-----------------4--------------------
public void startActivityForResult(Intent intent, int requestCode)
{
if (this.mActivity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to Activity");
}
this.mActivity.startActivityFromFragment(this, intent, requestCode);
}

时间: 2024-07-29 11:07:30

java.lang.IllegalStateException: Fragment bb{42261900} not attached to Activity的相关文章

java.lang.IllegalStateException:Fragment XXXFragment{409864b0} not attached to Activity

现象: 这类bug产生的现象就是在Fragment还没添加到Activity中时,去调用了Fragment的getResources().getString(R.string.xxx)这样的函数. 原因: Fragment被添加到Activity之前,如果去调用了Fragment的某些函数就会导致这个异常出现. 解决方案: 在出现问题的地方加入Fragment是否添加到Activity的判断: if(Fragment.isAdded()) { text = getResources().getS

java.lang.IllegalStateException: Fragment already added:

Fragment 相关API getSupportFragmentManager().popBackStack() getFragmentManager().getBackStackEntryCount 其是操作谁的,当一个activity初次显示的时候,其是0还是1. Fragment 具体有几个stack, 前端界面显示stack, 和后端缓存的stack backStack 其属于哪一个stack Activity, fragment, stack 其之间的关联是什么 FragmentMa

Android 学习之异常总结--java.lang.IllegalStateException:Could not execute method of the activity

在android学习过程中通常会遇到java.lang.IllegalStateException:Could not execute method of the activity这个错误:非法状态的异常 往android的主程序去写东西的时候必须要拿到上下文的,调用普通对象的方法是没有上下文的.

Android - 错误: java.lang.IllegalStateException: Already attached

错误: java.lang.IllegalStateException: Already attached 本文地址: http://blog.csdn.net/caroline_wendy 可能原因: @Override protected void onContinueCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } onContinueCreate和重写onCreate方法不一致; 修改为:

Fragment java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

首先描述下所要实现的功能点: MainActivity使用Fragment实现底部菜单,底部共有四个菜单按钮,分别对应:AFragment,BFragment,CFragment,DFragment.其中AFragment是默认显示. 点击CFragment中的一个button后跳转到第二个Activity界面:SecondActivity. SecondActivity返回键有两个:button01.button02.其中button01返回的是CFragment:button02返回的是AF

Android开发:java.lang.IllegalStateException报错

常见于ListView列表刷新数据时,更改UI. LOG: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. DDMS中的log无法定位到准确的出错位置.检查错误可

java.lang.IllegalStateException: attempt to re-open an already-closed object

最后,我还是通过单例模式和"短时间内不关闭SQLiteDatabase"解决了问题. 在自定义的DbHelper类(大部分人定义为DatabaseHelper)中: public static synchronized DbHelper getInstance(Context context){ if(dbInstance == null){ dbInstance = new DbHelper(context.getApplicationContext()); } return dbI

Java.lang.IllegalStateException Activity has been destroyed

03-04 12:01:05.468: E/AndroidRuntime(2474): FATAL EXCEPTION: main03-04 12:01:05.468: E/AndroidRuntime(2474): java.lang.IllegalStateException: Activity has been destroyed03-04 12:01:05.468: E/AndroidRuntime(2474):     at android.support.v4.app.Fragmen

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

1. 场景: 在开发过程中遇到这么一个需要,在主页点击按钮进入另一个Activity(ReadActivity),在该ReadActivity中点击一个按钮再返回主页并指定主页选中特定的Tab.主页是用FragmentTabHost + Fragment 实现.思路是通过startActivityForResult以及setResult() 以及requestCode作为标志位,是ReadActivity返回,因为还有其他的requestCode.再通过 FragmentTabHost的setC