当前位置: 首页 > 知识库问答 >
问题:

onLoadFinishe中的IlegalStateException

班高明
2023-03-14

java.lang.IllegalStateException:无法在Android.app.FragmentManagerImpl.CheckStateLoss(FragmentManager.java:1886)android.app.FragmentManagerImpl.EnqueueAction(FragmentManager.java:1905)android.app.FragmentManagerImpl.EnqueueAction(FragmentManager.java:685)android.app.BackStackRecord.CommitInternal(

为什么我会在play store控制台为我的一些用户崩溃。这不是特定于设备或操作系统的。

我没有在OnLoadFinished中做任何UI相关的事务。我正在执行ABCAsyncTask,在它的onPostExecute中,我调用pausehandler来执行UI。

另外,由于我使用了两个游标,所以onLoadFinished in在这里调用了两次。

@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
    if (cursor == null) {
        Log.e(LOG_TAG, "cursor is null");
        return;
    }


    (new ABCAsyncTask(this, cursorLoader, cursor)).execute();
}
 onPostExecute() {
    LoadItemPauseHandlerObject loadItemPauseHandlerObject = new LoadItemPauseHandlerObject ();
    Message responseMessage = new Message();
    responseMessage.what = 1; // some int
    responseMessage.obj = loadItemPauseHandlerObject;
    pauseHandler.sendMessage(responseMessage);
    }
void callOnLoadFinished(Loader<Object> loader, Object data) {
if (mCallbacks != null) {
String lastBecause = null;
if (mHost != null) {
lastBecause = mHost.mFragmentManager.mNoTransactionsBecause;
                    mHost.mFragmentManager.mNoTransactionsBecause = "onLoadFinished";
}
try {
if (DEBUG) Log.v(TAG, "  onLoadFinished in " + loader + ": "
+ loader.dataToString(data));
                    mCallbacks.onLoadFinished(loader, data);
                } finally {
if (mHost != null) {
mHost.mFragmentManager.mNoTransactionsBecause = lastBecause;
}
}
mDeliveredData = true;
}
}

Android.app.LoaderManager Android.app.Activity Android.app.Fragment

共有1个答案

柳宏深
2023-03-14

尝试添加检查

isAdded()

处理程序handleMessage()方法中,它可能位于片段中。如果你有进一步的疑问,请告诉我

 类似资料:
  • 我使用子JPanel构造JScrollPane,然后尝试将JScrollPane添加到父JPanel中,希望有一个可滚动的自定义JPanel。 我有一个大的细白线前面的所有我的组件,他们是没有滚动。有什么想法吗?

  • 我已经为android Studio创建了一个webview应用程序。但没有加载web URL。错误为NET::ERR_ACCESS_DENIED。有谁能帮忙吗

  • 我有一个使用Java Version8的Spring和Maven的项目。当我运行maven update时,它适用于Java9或更高版本,当我编译它时,它适用于Java8。我注意到了这一点,因为用Maven更新会将一个特定的类更改为Java9,而我无法导入这个类。 这个类是:javax.annotation.generated(Java8)。 这是要导入的类。但是,当我进行maven更新时,文件的

  • 当应用程序启动EncryptionBootstrapConfiguration无法自动装配我的自定义TextEncryptor-https://github.com/spring-cloud/spring-cloud-commons/blob/cde7c7f3118382490c28776f66e0a56f248141fd/spring-cloud-context/src/main/java/or

  • 我有一个问题,找出我的源代码中的错误。 有什么办法可以解决它吗? 我的代码中抛出了“ArrayIndexOutOfBoundsException”,但我无法找到它的位置。 android studio中的logcat:

  • RISC-V 与中断相关的寄存器和指令 [info] 回顾:RISC-V 中的机器态(Machine Mode,机器模式,M 模式) 是 RISC-V 中的最高权限模式,一些底层操作的指令只能由机器态进行使用。 是所有标准 RISC-V 处理器都必须实现的模式。 默认所有中断实际上是交给机器态处理的,但是为了实现更多功能,机器态会将某些中断交由内核态处理。这些异常也正是我们编写操作系统所需要实现的