Я сделал класс AsyncTask со следующим кодомProgressDialog new Activity Asynctask не показывает, почему?
public class removeDialog extends AsyncTask<Void, Void, Void> {
Context c;
ProgressDialog asyncDialog;
String page;
public removeDialog(Context c, String page) {
this.c = c;
this.page = page;
asyncDialog = new ProgressDialog(c);
}
@Override
protected void onPreExecute() {
//set message of the dialog
asyncDialog.setTitle("Please wait");
asyncDialog.setMessage("Loading...");
asyncDialog.setCancelable(false);
//show dialog
asyncDialog.show();
if (page == "algemeneVoorwaarden") {
Intent intent = new Intent(c, algemeneVoorwaarden.class);
c.startActivity(intent);
}
if (page == "contact") {
Intent intent = new Intent(c, contactTest.class);
c.startActivity(intent);
}
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
//don't touch dialog here it'll break the application
//do some lengthy stuff like calling login webservice
return null;
}
@Override
protected void onPostExecute(Void result) {
//hide the dialog
asyncDialog.dismiss();
super.onPostExecute(result);
}
}
Первый раз я попробовал: в первый раз, когда я вижу ProgressDialog, но второй раз я хочу открыть свою деятельность, я ничего не получаю.
Второй раз я пробовал: Я не получаю ProgressDialog даже в первый раз, когда я пытаюсь.
Я исполняю свой код в классе AsyncTask, код:
voorwaarden.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new removeDialog(c, "algemeneVoorwaarden").execute();
}
});
Кто-то знает, почему он не работает? Пожалуйста, помогите мне.
Является ли 'removeDialog' именем вашего производного класса AsyncTask? Было бы неплохо, если бы вы могли разместить заголовок своего класса. – Milack27
Это имя класса. – sander
Хорошо. Ну, в вашем 'onPreExecute', вы показываете диалог и начинаете новое действие. Я могу ошибаться, но я думаю, что ваш диалог отображается внутри первого действия, поэтому, когда вы начинаете новый, ваш диалог остается позади. – Milack27