我有一个AsyncTask,在doInBackground()中,我希望调用publishProgress()并传递多个不同类型的变量,比如一个String和一个Integer。我怎样才能做到这一点?我试图定义onProgressUpdate(Object ... values),然后通过publishProgress(StringVar,IntVar)调用它,然后在onProgressUpdate()中,我尝试通过值[0]和值[1]访问它们但是没有'工作。
我怎样才能做到这一点?
感谢。
答案 0 :(得分:6)
最简单的方法可能是定义一个包含字符串和整数的包装类。然后创建一个异步任务,使用此包装器进行udpates。
public class Wrapper{
public final String mString;
public final Integer mInteger;
public Wrapper(String myString, Integer myInteger){
mString = myString;
mInteger = myInteger;
}
}
答案 1 :(得分: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));