如何将byte []类型的参数传递给AsynTask类的doInBackground函数?
当我做这样的事情时:
private class Banana extends AsyncTask<byte[], Void, Void> {
protected void doInBackground(byte[]... data) {
mCamera.addCallbackBuffer(byte[] data);
}
protected void onProgressUpdate() {
}
protected void onPostExecute() {
}
}
我收到一条错误,指出返回类型与doInBackground函数的Async Task不兼容。
答案 0 :(得分:4)
doInBackground
实际上需要一个array[]
数组。所以你可以使用:
private class Banana extends AsyncTask<byte[], Void, Void> {
protected Void doInBackground(byte[]... data) {
mCamera.addCallbackBuffer(data[0]);
return null;
}
protected void onProgressUpdate() {
}
protected void onPostExecute() {
}
}
或者您可以将该数组作为类构造函数参数发送:
private class Banana extends AsyncTask<Void, Void, Void> {
private byte[] data;
public Banana(byte[] data) {
this.data = data;
}
protected Void doInBackground(Void... data) {
mCamera.addCallbackBuffer(this.data);
return null;
}
protected void onProgressUpdate() {
}
protected void onPostExecute() {
}
}