Я пытаюсь создать ProgressDialog
во время разбора объектов JSON. Поэтому я использую 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());
Это правильный способ передать контекст активности из фрагмента?
Возможно, проблема в другом месте? Это ProgressDialog
просто не появляется, хотя загрузка занимает около 2-3 секунд.
Пожалуйста, помогите мне решить эту проблему.
Кто-нибудь? Любой намек или предложение? – AnZyuZya