异步任务无法更新GUI
问题描述:
我的基本问题是如何使用AsyncTask更新GUI。我在GUI线程引用的onPostExecute
中设置String
。使用日志记录,我可以看到String
在onPostExecute
方法中被设置,但它永远不会在我的GUI下在我的onClickListener
下被设置为更新GUI。任何帮助表示赞赏。异步任务无法更新GUI
主要课程:
公共类主要扩展活动{
/** 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"); } }; }
异步任务:
类的getJSON扩展的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);
+0
就是这样。我应该抓住那个。 谢谢! – user1213942 2012-02-16 14:24:18
目前尚不清楚,在你的'被添加到您的按钮什么角度temperatureListener'。点击按钮时是否显示“Button Clicked”日志消息? – 2012-02-16 13:54:49
我使用temperatureListener作为一个按钮来更新GUI。是的,出现“按钮点击”日志消息。 Deepak能够找到我的问题,但感谢您的帮助! – user1213942 2012-02-16 14:25:31