这是我的示例代码。如何从AsyncTask中的回调函数访问父类视图?
public class test extends Activity {
private TextView tv;
public class Blap extends AsyncTask<String,String,Boolean>{
private test parent;
@Override
protected Boolean doInBackground(String... options) {
this.auth(options[0],options[1]);
parent.aresponse(res);
return true;
}
public Blap(test a){
this.parent = a;
}
public auth(String login, String password){
//process auth
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
//work...
}
public void buttonclick(View v){
tv = new TextView(this);
new Blap(this).execute(editText1.getText().toString(),editText2.getText().toString());
setContentView(tv);
}
public void aresponse(String rs){
tv.setText(rs);
}
}
但是,当调用aresponse时,我得到一个异常:只有创建视图层次结构的原始线程可以触及其视图。 如何正确等待异步操作完成并继续处理所需的操作?
谢谢。但在这个问题上,我更喜欢使用onPostExecute,我知道它在UI线程中运行。 – uzer 2012-04-26 06:04:26
其您的选择。我的目的是告诉你,你不能更新非UI线程的意见,这就是全部:) – waqaslam 2012-04-26 07:14:42