1

我有一个 AsyncTask,在 doInBackground() 中,我希望调用 publishProgress() 并将其传递给多个不同类型的变量,例如字符串和整数。我怎样才能做到这一点?我尝试定义 onProgressUpdate(Object... values),然后通过 publishProgress(StringVar, IntVar) 调用它,然后在 onProgressUpdate() 中,我尝试通过 values[0] 和 values[1] 访问它们,但那没有不工作。

我怎样才能做到这一点?

谢谢。

4

2 回答 2

6

最简单的方法可能是定义一个接受字符串和整数的包装类。然后创建一个异步任务,使用此包装器进行进度更新。

public class Wrapper{
    public final String mString;
    public final Integer mInteger;

    public Wrapper(String myString, Integer myInteger){
        mString = myString;
        mInteger = myInteger;
    }
}
于 2013-11-06T02:31:20.720 回答
1

使用一个类来包装你的进度值:

class ProgressUpdate {
    public final String detail;
    public final int value;

    public ProgressUpdate(String detail, int value) {
        this.detail = detail;
        this.value = value;
    }
}

然后,发布您的进度:

publishProgress(new ProgressUpdate(detail, value));
于 2013-11-06T02:32:18.017 回答