Android 在AsyncTask中传递多个不同类型的变量

Android 在AsyncTask中传递多个不同类型的变量,android,android-asynctask,Android,Android Asynctask,我有一个AsyncTask,在doInBackground()中,我希望调用publishProgress()并向它传递多个不同类型的变量,比如一个字符串和一个整数。我该怎么做?我尝试定义onProgressUpdate(对象…值),然后通过publishProgress(StringVar,IntVar)调用它,然后在onProgressUpdate()中,我尝试通过值[0]和值[1]访问它们,但没有成功 我怎样才能做到这一点 谢谢。最简单的方法可能是定义一个包含字符串和整数的包装类。然后创建

我有一个AsyncTask,在doInBackground()中,我希望调用publishProgress()并向它传递多个不同类型的变量,比如一个字符串和一个整数。我该怎么做?我尝试定义onProgressUpdate(对象…值),然后通过publishProgress(StringVar,IntVar)调用它,然后在onProgressUpdate()中,我尝试通过值[0]和值[1]访问它们,但没有成功

我怎样才能做到这一点


谢谢。

最简单的方法可能是定义一个包含字符串和整数的包装类。然后创建一个异步任务,该任务将此包装器用于其进度数据

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

    public Wrapper(String myString, Integer myInteger){
        mString = myString;
        mInteger = myInteger;
    }
}

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

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

    public Wrapper(String myString, Integer myInteger){
        mString = myString;
        mInteger = myInteger;
    }
}

使用类包装进度值:

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));

使用类包装进度值:

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));

我相信可以使用你目前的方法。您只需要将它们转换回原始类型。您的意思是保留“Object”类型,调用publishProgress(StringVar,IntVar),然后在onProgressUpdate中,将值[n]转换回原始类型?谢谢,我尝试过了,效果很好!我相信可以使用你目前的方法。您只需要将它们转换回原始类型。您的意思是保留“Object”类型,调用publishProgress(StringVar,IntVar),然后在onProgressUpdate中,将值[n]转换回原始类型?谢谢,我尝试过了,效果很好!