0

我有一个 AsyncTask 类,它解析 json 数据并插入到一个对象中,当我在正常活动类中调用它时,它显示数据已被解析,但是当我在扩展 Application 的类上执行它时,它给出的结果为零。这是我的课

public class AppGlobalData extends Application {
    public ArrayList<YoutubeItem> gotItem= new ArrayList<YoutubeItem>();
    private YouTubeParser parser;

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();


        new ParserLoader().execute();
    }

    public class ParserLoader extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {
            Log.i("Succeed?", "Yes");
            parser = new YouTubeParser(
                    "http://powergroupbd.com/youtube/getyoutubejson.php");
            try {
                gotItem = parser.parseInitiator();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


            return null;
        }

    }

    public ArrayList<YoutubeItem> getGotItem() {
        return gotItem;
    }

    public void setGotItem(ArrayList<YoutubeItem> gotItem) {
        this.gotItem = gotItem;
    }

}

我无法弄清楚问题所在,有人可以帮忙吗?请注意,此类运行并记录我的字符串,但不解析数据。

4

1 回答 1

2

我认为可能发生的情况是当 new ParserLoader().execute(); 它异步完成工作。当您的 Activity 加载并调用 getGotItem() 时,Asynctask 可能尚未完成

于 2013-09-12T20:46:30.633 回答