2013-08-28 73 views
0

這是我AsycTask刪除警告時執行的AsyncTask

class LoadAsync extends 
     AsyncTask<ArrayList<String>, Void, ArrayList<Float>> { 
    private ProgressDialog mPd; 

    @Override 
    protected void onPreExecute() { 
        //do something 
    } 

    @Override 
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) { 
        //do something 
    } 

    @Override 
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) { 
     return result; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<Float> scAnalysis) { 
        //do something 
    } 
} 

而且我的活動我的

ArrayList<String> arrInput = new ArrayList<String>(); 
    arrInput.add("var1"); 
    arrInput.add("var2"); 
    arrInput.add("var3"); 
    new LoadAsync().execute(arrInput); //here display warning 

內容警告的執行的AsyncTask:類型安全:一個可變參數創建ArrayList的一個通用陣列參數asynctask執行

我想刪除這個警告..我該怎麼辦

回答

2

更改

ArrayList<String> arrInput = new ArrayList<String>(); 
    arrInput.add("var1"); 
    arrInput.add("var2"); 
    arrInput.add("var3"); 
    new LoadAnalysis().execute(arrInput); 

new LoadAnalysis().execute("var1", "var2", "var3"); 

,並警告會自行消失。

當然,你也紛紛改變

AsyncTask<ArrayList<String> 

AsyncTask<String 

,您可以通過PARAMS作爲數組訪問"var1", "var2", "var3",

params[0] is "var1" 

等。看看文檔varargs

+0

謝謝..我解決了它。 – anata

+0

@anata:如果上述答案解決了您的問題,那麼請考慮接受答案,以便其他人知道這個問題得到了解決方案。 –