2013-06-25 52 views
0

我是android的新手。構建一個需要在後臺完成一些任務的應用程序。以下是代碼片段。AsynTask Android開發:在AsyncTask中傳遞參數的問題

public class YQL extends AsyncTask <List,Void,List> 
{ @Override 
    protected List doInBackground(List... Suggestions) { 
       //doing some stuff using Suggestions[0] 
    }  
} 

我有一個List類的對象,mySuggestions,我需要傳入異步任務。但是,由於異步任務只將數組作爲輸入,我嘗試了下面的事情。

YQL yqlMain = new YQL(); 
List[] temp = null; 
temp[0] = mySuggestions 
yqlMain.execute(temp); 

沒有工作。 錯誤:空指針訪問:變量temp只能爲空。 有什麼建議嗎?

+1

Abhi這是真的代碼?我懷疑你理解後臺進程,但是卻錯過了java中的數組已經修復了大小,因此如果你聲明它爲空,你不能引用任何東西,特別是下一行 – quinestor

回答

0

temp爲空,但你調用它的操作。這給了NullPointerException

下面的代碼應該做的伎倆(未經測試)

public class YQL extends AsyncTask <String,Void,List> 
{ 
    @Override 
    protected List doInBackground(String... Suggestions) { 

    }  
} 

執行:

YQL ygl = new YQL(); 
ygl.Execute("Suggestion 1", "Suggestion 2") 
0

你做錯了..這樣做

List temp = new ArrayList(); 
temp.add(mySuggestions); 
yqlMain.execute(temp); 
0
new DownloadFilesTask().execute(url1, url2, url3); 

然後

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { 
.. 
.. 
} 

檢查此鏈接: AsyncTask