【发布时间】:2013-07-13 11:49:13
【问题描述】:
我在将 int 数组传递给扩展 AsyncTask 的类时遇到问题。
int 数组由位图图像的 resourceId 组成。
final int[] resIdImage = resId_image;
我通过以下方式发送此向量:
execute(resIdImage);
以及扩展 AsyncTask 的类
static class BitmapWorkerTask extends AsyncTask <int[], Void, Bitmap[]>
private int[] data = new int[9];
以及通过params
接收这些resourceIds的doInBackground@Override
protected Bitmap[] doInBackground(int[] ... params) {
for (int i = 0; i < data.length; i++) {
data[i] = params[i];
}
但我在 doInBackGround 方法中遇到以下错误:
类型不匹配:无法从 int[] 转换为 int
我的代码有什么问题?
提前致谢!
【问题讨论】:
-
为什么要使用静态类?
-
数据[i] = 参数[i];
-
扩展 AsyncTask 的类是静态内部类。为了避免内存泄漏,它必须是静态的。
-
@bofredo:为什么不呢?取决于首先如何定义数据
-
@user2365568 : 顺便贴一下你的数据变量的声明和定义