无法从AsyncTask更新UI

时间:2014-02-15 15:57:40

标签: android android-asynctask textview

我正在尝试从n AsyncTask'onPostExecute()方法更改一些UI元素,但它不起作用...我不知道为什么我之前已经完成了几次而且它没有任何工作问题....任务将照片上传到服务器,它的工作原理;我现在不关心结果只是想在UI上写一些东西

主要活动代码:

 ImageUpload post=new ImageUpload(imagePath.toString(),textView);
               //post.delegate=this;
               post.execute(imagePath.toString());

asyncTask代码:

public class ImageUpload extends AsyncTask<String, Void, Void>{

    public TextView resp;

    public ImageUpload(String photoPath, TextView resp){
        //other stuff
        this.resp=resp;
    }

    @Override
    protected Void doInBackground(String... params) {
         //upload photo
    }

    protected void onPostExecute(Void... params) {
        resp.setText("work done");
    }
}

文件已上传,但textview没有更改....任何人都可以看到错误?

2 个答案:

答案 0 :(得分:4)

你必须像这样写onPostExecute

@Override
protected void onPostExecute(Void params) {
    resp.setText("work done");
}

答案 1 :(得分:0)

在这里,你错过了2件事......  1. return null方法中的doInBackground  2.在@Override方法

之前添加onPostExecute表示法
@Override
protected Void doInBackground(String... params) {
    //upload photo
    return null; //you have to return a null for Void
}

@Override
protected void onPostExecute(Void result) {
    resp.setText("work done");
}