我有一个扩展应用程序类的类,以在任何活动启动之前加载一些数据。我在那里做了一些 json 解析,但问题是在应用程序类中完成之前调用了活动类doInBackground
,这就是为什么我第一次得到一个没有任何值的变量。这是我的代码,我需要它的解决方案,请帮助!
public class AppGlobalData extends Application {
public ArrayList<YoutubeItem> gotItem = new ArrayList<YoutubeItem>();
public YouTubeParser parser;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
parser = new YouTubeParser(
"http://powergroupbd.com/youtube/getyoutubejson.php");
new ParserLoader().execute();
}
public class ParserLoader extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
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;
}
}
另一点是,如果我解析其中的数据,onCreate
它可以在较低版本的 android 中工作,但在 ICS 中会导致网络主线程异常。