2013-07-24 111 views
4

如何將類型byte []的參數傳遞給AsynTask類的doInBackground函數?如何將類型byte []的參數傳遞給AsyncTask函數?

當我做這樣的事情:

private class Banana extends AsyncTask<byte[], Void, Void> { 
    protected void doInBackground(byte[]... data) { 
     mCamera.addCallbackBuffer(byte[] data); 
    } 

    protected void onProgressUpdate() { 
    } 

    protected void onPostExecute() { 
    } 
} 

我得到一個錯誤說返回類型是異步任務的doInBackground功能不兼容。

+0

你爲什麼不接受答案的人給你?你有幾個問題,但沒有人接受答案,即使有些問題沒有問題。 – gunar

回答

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