4

タイプ 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 関数の非同期タスクと互換性がないというエラーが表示されます。

4

1 に答える 1

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() {
    }
}
于 2013-07-24T13:33:06.333 に答える