我有一个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;
}
}
我无法弄清楚问题,有人可以帮忙吗? 请注意,此类运行并记录我的String但不解析数据。
答案 0 :(得分:2)
我认为当新的ParserLoader()。execute();它以异步方式完成工作。当您的Activity加载并调用getGotItem()时,Asynctask可能尚未完成