gpt4 book ai didi

java - 异步任务无法更新 GUI

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

我的基本问题是如何使用 AsyncTask 更新 GUI。我在 GUI 线程引用的 onPostExecute 中设置了一个 String。使用日志记录,我可以看到在 onPostExecute 方法中设置了 String,但它从未在我的 onClickListener 下的 GUI 上设置以更新图形用户界面。感谢您的帮助。

主程序:

public class Main extends Activity {

/** Called when the activity is first created. */
Arduino.ToAndroid.Temperature.GetJSON jsonHttpClass = new Arduino.ToAndroid.Temperature.GetJSON();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

new GetJSON().execute(url_to_Http);
}
View.OnClickListener temperatureListener = new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
// buttonTemperature = json.getTemp();
tempView.setText(jsonHttpClass.value);
Log.i("ROSS LOG", "Button Clicked");
}
}; }

异步任务:

class GetJSON extends AsyncTask {

public String value;

@Override
protected String doInBackground(String... url) {
String result = this.getHttpJson(url[0]);
return result;
}

@Override
protected void onPostExecute(String result) {
value = new String(result);
Log.i("ROSS LOG", value);
}

}

最佳答案

onCreate() 中,您应该使用 AsyncTask 已创建对象的句柄,而不是创建新对象。

使用

jsonHttpClass.execute(url_to_Http);

代替

new GetJSON().execute(url_to_Http); 

关于java - 异步任务无法更新 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9312454/

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