2014-03-13 36 views
0

作爲android編程的新手,我遇到了一些困難...因爲我完全從搜索和我讀過的文章中直到現在我需要你的幫助。在asynctask中傳遞多個值並獲得相應的結果

在我的應用程序中,我試圖在啓動屏幕多個值期間傳入一個asynctask,因此它將返回與值一樣多的結果。

myasynctask task=new myasynctask() 
task.execute("value1","value2",etc...) 

,並返回使用其他活動RESULT1,結果2,等等

請你給我任何的例子,會幫助我嗎?

在此先感謝!

對不起,我可憐的英語。

回答

0

您可以將它們封裝在DataTransferObject中。

public class AsyncTaskDTO{ 
// implemnt your values 
private int foo; 
private boolean bar; 
// getter and setters. 
} 

你也可以傳遞一個Map,一個數組或一個List。

as ex: 
AsyncTaskDto dto = new AsyncTaskDto(); 
dto.setFoo(2); 
task.execute(dto); 


List<String> values = new LinkedList<String>(); 
values.add("value1"); 
task.execute(values); 
0
public interface myInterface{ 
     public abstract void taskComplete(value1,value2... etc); 
    } 
0

當您執行的任務,因爲在你的代碼,你會得到PARAMS [0],parmas [1]等的價值,結果等量返回onPostExecute我會建議使用數組或列表。

private class DownloadFilesTask extends AsyncTask<URL, Integer, ArrayList<String>> { 
    protected Long doInBackground(URL... urls) { 
     ArrayList<String> result = new ArrayList<String>(); 
     for (int i = 0; i < params.length; i++) { 
      value = params[i]; 
      //do stuff 
      result.add(whatever); 
     } 
     return result; 
    } 


    protected void onPostExecute(ArrayList<String> result) { 
     //do stuff... 
    } 
} 

http://developer.android.com/reference/android/os/AsyncTask.html

相關問題