AsyncTask의 onpostexecute 메서드에서 사용자 지정 대화 상자를 사용하고 있는데, 두 번 팝업됩니다. 사용자가 버튼을 클릭하면 대화 상자가 닫혀 야합니다. 정상적으로 작동하는 것 같습니다.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