gpt4 book ai didi

android - 现代异步任务 IllegalStateException

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:58 25 4
gpt4 key购买 nike

我们在我们的应用程序中使用 AsyncTaskLoaders 来加载内容。我们正在崩溃

java.lang.IllegalStateException: Cannot execute task: the task is already running.
at android.support.v4.content.ModernAsyncTask.doInBackground(ModernAsyncTask.java:414)
at android.support.v4.content.AsyncTaskLoader.executePendingTask(AsyncTaskLoader.java:219)
at android.support.v4.content.AsyncTaskLoader.dispatchOnCancelled(AsyncTaskLoader.java:232)
at android.support.v4.content.AsyncTaskLoader$LoadTask.onCancelled(AsyncTaskLoader.java:88)
at android.support.v4.content.ModernAsyncTask.finish(ModernAsyncTask.java:464)
at android.support.v4.content.ModernAsyncTask.access$400(ModernAsyncTask.java:48)
at android.support.v4.content.ModernAsyncTask$InternalHandler.handleMessage(ModernAsyncTask.java:483)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5335)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

我们已经尝试重现这个,但没有成功!

有没有办法找出导致此问题的加载程序?

我们正在使用com.android.support:support-v4:23.0.1

我们正在调查这可能与 Activity 泄漏有关的可能性,除此之外,这就是我们获得的所有信息。

有什么想法吗?

最佳答案

我仍在寻找这个错误,因为我自己无法重现它,但我相信我找到了原因(至少对我来说是这样,但我必须发布并查看它是否有帮助)。

事实证明,当我在我的加载器上创建观察者时,我将处理程序作为 null 传递,期望与我使用 Handler 的默认构造函数时得到的类似行为(为了它在主线程上运行,我正在创建的线程它来自)。然而,发生的事情是它立即从任何线程调用 onChange .. onChange 至少在我的情况下调用加载程序的 onContentChanged,据记录需要从主线程调用...因为情况并非如此,任务和cancellationTask 搞砸了(因为缺少更好的技术术语),导致在任务的意外状态下触发取消,因此出现错误消息。

这在我的案例中也表现为加载器没有正确更新条目,取消任务已经加载了一个值,因此加载器丢弃了新任务,因此新加载被跳过(takeContentChanged 为 false)。

因此请确保您在主线程中使用 new Handler() 初始化您的观察者(onStartLoading 应该是执行此操作的好地方)。

关于android - 现代异步任务 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33124568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com