我试图在解析JSON对象的过程中创建ProgressDialog
。所以我使用AsyncTask
:ProgressDialog不会出现在OnPreExecute
private class JsonUtility extends AsyncTask<String, Void, String> {
//getting activity context like that since outer activity is not enclosing
public JsonUtility(Activity activity){
super();
mActivity = activity;
}
public JsonUtility(){}
@Override
protected void onPreExecute(){
super.onPreExecute();
dialog = ProgressDialog.show(mActivity, "Loading...", "Please wait...", true);
}
@Override
protected String doInBackground(String... params) {
//...operate with JSON
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
dialog.hide();
}
}
,我从JSON获取信息这样的:
public ArrayList<CoursesData> getCourses(Activity activity){
ArrayList<CoursesData> resultArrayList = new ArrayList<>();
try {
JSONArray jArray = new JSONArray(new JsonUtility(activity).execute(coursesUrl).get());
//...and so on
}
活动传递给JsonUtility
时getActivity()
创建片段:
ArrayList<CoursesData> coursesDatas = parserJson.getCourses(getActivity());
从片段传递活动上下文是否正确?
或者可能问题出在别的地方?尽管加载大约需要2-3秒,但这个ProgressDialog
根本不会出现。
请帮我解决这个问题。
任何人?任何暗示或建议? – AnZyuZya 2015-02-10 15:36:01