Я использую настраиваемое диалоговое окно в методе onpostexecute в AsyncTask, оно выставляется дважды. Когда пользователь нажимает на кнопку, диалог должен быть закрыт, это, похоже, работает нормально.Как предотвратить выборочный диалог, дважды повторяющийся в asynctask onPostExecute?
Может кто-то пролить свет на то, почему его зовут дважды?
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog != null) {
pDialog.dismiss();
}
try {
if (responseFromServer.contains("x")) {
// Pop up to create password
final Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.dialog_password);
dialog.setTitle("Title...");
dialog.setCancelable(false);
final TextView etpassword = (TextView) dialog.findViewById(R.id.etpassword_dialog);
final Button btnpassword = (Button) dialog
.findViewById(R.id.btnsavepassword_dialog);
btnpassword.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (etpassword.getText().toString().length() == 0) {
Toast.makeText(getActivity(), "Enter password", Toast.LENGTH_SHORT)
.show();
} else if (etpassword.getText().toString().length() < 6) {
Toast.makeText(getActivity(),
"Password should contain minimmum 6 characters",
Toast.LENGTH_SHORT).show();
} else {
dialog.dismiss();
}
}
});
if (!dialog.isShowing()) {
dialog.show();
}
}
else {
Toast.makeText(getActivity(), "Unexpected error occurred. Please try again",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
Log.v("Main FRagment FB async::::::", e.getMessage());
}
}
Вы говорите, что onPostExecute вызывается дважды для одной задачи? Или что диалог загадочно выскакивает два раза? (Последовательно - один сразу после первого отклоняется или оба вместе?) Или возможно, что у вас есть несколько задач, которые потенциально могут выполняться параллельно? Я подозреваю, что пока ваш диалог виден (и перекачивает сообщения), другие задачи завершаются и вызывают onPostExecute. Это просто догадка. – selbie
@ user3121673 Вы пытаетесь сказать, что ваш 'ProgressDialog' показывает два раза? ИЛИ ваш «Пользовательский диалог» показан два раза? – GrIsHu
Ты работаешь в Управлении фрагментами? – Piyush