AsyncTask 사이에 사용자 입력이 필요한 시나리오가 있지만 doInBackground는 UI를 표시 할 수 없습니다. 시나리오 : 버튼 클릭, 서비스 호출 결과에 따라 확인 대화 상자를 표시합니다. 예를 클릭하면 다른 서비스 호출이 표시되고 사용자가 아니오를 클릭하면 다른 서비스가 클릭됩니다 요구. ProgressDialog를 표시 할 때 문제가 발생했습니다.AsyncTask 안드로이드에서 사용자 입력을 얻는 방법
프로그램 작업 흐름 :
btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bool result = Method1(); if(result){ ShowConfirmation(new YesCallBackHelper() {Method2();}, new NoCallBackHelper() {Method3();}); } else{ Method3(); } } }); private bool Method1() { return ServiceCall1(); } private bool Method2() { return ServiceCall2(); } private bool Method3() { return ServiceCall3(); }
은 @ vickey의 대답과 배경 스레드에서 UI를 업데이트하는 것에 동의합니다. 로직을 runOnUiThread에 넣어야합니다. – Radhey