У меня есть приложение для Android с AsyncTask, которое отвечает за загрузку файла из Интернета. Этот AsyncTask выполняется при нажатии на элемент в Listview. Поэтому у меня есть пользовательский адаптер и в OnItemClickListener из Listview, я запускаю загрузку и выполняю AsyncTask.Прогресс Диалог не отображается в AsyncTask
Теперь мой адаптер содержит следующий код для запуска AsyncTask имени FileDownloader:
@Override
public void onClick(View view) {
try {
FileDownloader fd = new FileDownloader(activity);
// some irrelevant code here
String filepath = fd.execute("http://myurl.com/img.png", PDFFileName, GameHistoryAdapter.this.gameInfo.toString()).get();
}
catch(Exception e) { e.printStackTrace(); }
}
активности является частным полем, которое передается адаптеру в конструкторе адаптера:
public GameHistoryAdapter(Activity a, int selectedIndex) {
this.activity = a;
}
Класс FileDownloader содержит метод OnPreExecute, где я хочу показать диалоговое окно выполнения деятельности:
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(activity);
dialog.setMessage("Downloading...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
dialog.show();
}
Но что бы я ни пытался, диалог не появляется. Когда я создаю диалоговое окно предупреждения в методе OnPostExecute для AsyncTask, откроется диалоговое окно.
@Override
protected void onPostExecute(String res)
{
super.onPostExecute(res);
dialog.hide();
new AlertDialog.Builder(activity)
.setTitle(activity.getString(R.string.save_pdf_title_text))
.setMessage(activity.getString(R.string.save_pdf_text) + PDFFileName)
.setPositiveButton(activity.getString(R.string.close_text), null)
.setIcon(android.R.drawable.ic_dialog_info)
.show();
}
Кто-нибудь знает, почему диалог не появляется в моей деятельности?
диалог инициализации в конструкторе AsyncTask..и в onPreExecute только write dialog.show(); – Meenal