gpt4 book ai didi

android - 如何从 Android AsyncTask 更改 Activity UI?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:00 26 4
gpt4 key购买 nike

如果我有一个 UI 将从单独的线程更新(使用 AsyncTask),我可以将 AsyncTask 定义为 Activity 的内部类,但这有两个我认为有问题的缺点:

  1. 它使源文件非常大,降低了管理代码的效率
  2. 很难重用线程类

什么是好的解决方案?使用内部类,但将它所做的一切抽象到其他类?将对 Activity 的引用传递给 AsyncTask?始终将 AsyncTask 类定义为内部类,只接受源文件会很大吗?

最佳答案

首先也是最重要的:当使用 AsyncTask 时,您不得在 doInBackground() 中执行 UI Activity 。

你可以做的是 - 如果你想,例如更新长时间运行的后台作业的状态,是从 doInBackground() 到 publishProgress(values)。然后,运行时将为这些值调用您的 onProgressUpdate(values) 回调,该回调在 UI 线程中运行,您可以从中更新 UI。

看看例如https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L336查看示例。

AsyncTask 可以在自己的类文件中实现。

关于android - 如何从 Android AsyncTask 更改 Activity UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836716/

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