gpt4 book ai didi

Android 在方向更改后从 AsycTask 更新 UI

转载 作者:行者123 更新时间:2023-11-30 04:32:24 27 4
gpt4 key购买 nike

我正在使用 AsyncTask 从服务器中检索一些显示在屏幕上的数据。问题是如果我在检索数据时更改设备的方向(显示进度条),我的 UI 不会更新。

我已经做了以下处理来处理这种情况:

a) 覆盖返回我的 AsychTask 实例的 onRetainNonConfigurationInstance,在 onCreate 方法上检索它。b) 将我的小部件声明为易变的c) 通过从 AsycTask 的 postExecute 调用 setContentView 重绘整个 Ud) 在小部件上调用 invalidate 方法

我没有在屏幕上看到任何错误,我的应用程序没有崩溃,但 UI 也没有更新。我在 Debug模式下执行了代码,实际上执行了更新 UI 的代码,但它什么也没做。

在日志中我看到一个错误,说我的 Activity 泄漏了一个窗口。

关于我做错了什么或没有做我应该做的事情的任何建议。

最佳答案

问题几乎可以肯定是您的 AsyncTask 保留了对旧 Activity 的引用。 (也许它是一个内部类?)这是一个出乎意料的难题。在 this thread 上对困难以及一些解决方案进行了很好的讨论。在谷歌群组。向下滚动以获取 Lance Nanek 的答案,以获取一些解决此问题的代码。

这个问题不是 AsyncTask 特有的;它可能发生在需要与 UI 交互的任何后台线程中,并且还需要在配置更改带来的销毁/启动生命周期事件中幸存下来。

关于Android 在方向更改后从 AsycTask 更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472669/

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