2014-10-12 70 views
0

我已經寫了這個代碼進行培訓,但它總是返回空(我檢查了SD卡和文件存在,並且還檢查了所需的權限)。AsyncTask沒有找到一個文件

private class FindRec extends AsyncTask<String, Integer, File>{ 
    ProgressDialog pd = ProgressDialog.show(Albums.this, "Finding...", ""); 

    @Override 
    protected void onPreExecute() { 
     pd.show(); 
    } 
    @Override 
    protected File doInBackground(String... album) { 
     File e1 = new File(Environment.getExternalStorageDirectory() + "/bluetooth/" + album + ".zip"); 
     if (e1.exists()) { 
      return e1; 
     } 
     return null; 
    } 
    @Override 
    protected void onPostExecute(File result) { 
     pd.dismiss(); 
     if (result == null) { 
      //I always get this toast. 
      Toast.makeText(getApplicationContext(), "Album Not Found!", Toast.LENGTH_SHORT).show(); 
     } else { 
      setfile(result); 
     } 

    } 

然後在我的OnCreate:

... 
new FindRec().execute(albumname); 

回答

1

您收到doInBackground字符串數組,所以取這個數組的第一個元素,而不是數組隱式轉換爲字符串。

File e1 = new File(Environment.getExternalStorageDirectory() + 
     "/bluetooth/" + 
     album[0] + ".zip");