gpt4 book ai didi

在 doInBackground 上传递 Android 上下文

转载 作者:行者123 更新时间:2023-11-30 04:23:48 25 4
gpt4 key购买 nike

我将“Scores Activity”发送到 doinbackground 然后在 Scores Activity 上运行一个函数但是得到“只有创建 View 层次结构的原始线程才能触及它的 View 。”关于“birinci.setText(txt);”行。

我在这里使用相同的上下文看起来缺少什么?

Scores Activity
{
Object[] stuff = {this.dhn, Scores.this};
ConnectXML runXML = new ConnectXML();
runXML.execute(stuff);
}

public void setScoreListUpdate(String txt)
{
birinci.setText(txt);
}



private Scores myScores;
protected String doInBackground(Object... arguments) {

myScores = (Scores)stuff[1];
myScores.setScoreListUpdate(result);

}

最佳答案

错误消息已经给出了答案:您不能触摸(编辑/修改/更新/等)来自未创建它们的线程的任何 View 。由于在 AsyncTask 的 doInBackgrund(...) 中执行的任何操作都是由单独的线程完成的,因此您不能在其中进行任何直接的 View 操作。

解决方案非常简单:根据您的需要覆盖 AsyncTask 提供的其他方法。如果您尝试在所有工作完成后更新 View ,只需覆盖 onPostExecute(...)。如果您想在后台完成工作时指示某种进度,请使用 onProgressUpdate(...)。其中的所有内容都由主 UI 线程(创建所有 View )执行。

请阅读 documentation on AsyncTask ,因为它非常清楚地描述了不同的步骤和可能性。

关于在 doInBackground 上传递 Android 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866345/

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