如何将byte []类型的参数传递给AsyncTask函数?

时间:2013-07-24 13:12:58

标签: android multithreading android-asynctask

如何将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不兼容。

1 个答案:

答案 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() {
    }
}