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

标签 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 函数的异步任务不兼容。

最佳答案

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

关于android - 如何将 byte[] 类型的参数传递给 AsyncTask 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835082/

相关文章:

android - 为什么我不能更改 Android 虚拟设备配置中的 "Emulated Performance: Graphics"设置?

c# - 通过 RS232 原子发送和接收消息

java - 如何将您的程序与对 "bad"API 的调用隔离开来?

android - Asynctask 在调试版本中正确执行,但在发布版本(已签名的 apk)中无法更新 UI

Android 单个 AsyncTask 中的多个 Web 服务调用

java - Android AsyncTask fragment 加载

android - 应用服务器通信协议(protocol)

javascript - 如何使用 React Native WebView 组件在我的 Android 应用程序中显示网页的特定部分?

android - 在 Activity 中保持屏幕开启 - 不适用于 FLAG_KEEP_SCREEN_ON

c# - 带输出参数的 control.invoke