异步任务返回Arraylist检索它?

时间:2011-04-29 07:02:17

标签: android

new DownloadFilesTask().execute(myPrefs.getString("IP", ""), null, null);

我从dobackground方法返回一个Arraylist。如何把它放到我的arraylist中?

Arraylist al=null;

al=new DownloadFilesTask().execute(myPrefs.getString("IP", ""), null, null);

不能正常工作。

4 个答案:

答案 0 :(得分:1)

  

我从dobackground方法返回一个Arraylist。如何把它放到我的arraylist中?

在返回之前,将ArrayList方法中的本地doInBackground()分配给您的全局ArrayList

示例代码:

@Override
protected ArrayList doInBackground(...) {
     ArrayList localArrayList = new ArrayList();
     // Other stuff you might have.
     // ...
     return mYourGlobalArrayList = localArrayList;
}

答案 1 :(得分:1)

在你的代码中尝试这样的

//After Preexecute...


@Override
                protected ArrayList doInBackground(...) {
                     ArrayList localArrayList = new ArrayList();
                     // Other stuff you might have.
                     // ...
                     return localArrayList;
                }
                @Override
                protected void onPostExecute(Object result) {
                    // TODO Auto-generated method stub

                    if(result!= null)
                    {
                        ArrayList<String> category = new ArrayList<String>();
                        category = (ArrayList<String>) result;
                    }
                }

            }

然后你可以在后执行

中将这个arraylist分配给你的arraylist

答案 2 :(得分:0)

new AsyncTask<String, Void, ArrayList<String>>() {

            @Override
            protected ArrayList<String> doInBackground(String... params) {
                //result = do some work
                            ArrayList localArrayList = new ArrayList();
                         //   localArrayList = get from your website or from database
                          // assign arraylist globally
                return result;
            }


        }.execute("");

答案 3 :(得分:0)

从doInBackground方法返回它,并在onPostExecute方法中绑定它。

在onPostExecute方法中,您可以获取doInBackground的返回值作为参数值