我試圖在解析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