Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上下文在doInBackground上传递_Android - Fatal编程技术网

Android上下文在doInBackground上传递

Android上下文在doInBackground上传递,android,Android,我将“分数活动”发送到doinbackground,然后对分数活动运行一个函数,但得到 “只有创建视图层次结构的原始线程才能接触其视图。” 使用相同的上下文,我在这里遗漏了什么 Scores Activity { Object[] stuff = {this.dhn, Scores.this}; ConnectXML runXML = new ConnectXML(); runXML.execute(stuff); } public void setScoreListUpdate(String

我将“分数活动”发送到doinbackground,然后对分数活动运行一个函数,但得到 “只有创建视图层次结构的原始线程才能接触其视图。”

使用相同的上下文,我在这里遗漏了什么

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);

}

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

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


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

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

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


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

是的,我错了!我把myScores.setCoreListUpdate(结果)放进去;在执行后,它工作得很好。谢谢你的帮助。请原谅我的错误!我把myScores.setCoreListUpdate(结果)放进去;在执行后,它工作得很好。谢谢你的帮助