.net 웹 서비스를 통해 사용자 이름 가용성을 확인하는 활동이 있습니다. 전화를받는 동안 "잠시 기다려주십시오"메시지를 표시해야합니다. AsyncTask 및 Threading으로 실험했지만 문제는 다른 로직을 처리하는 결과에 따라 웹 서비스 호출이 완료 될 때까지 실제로 스레드를 차단하려는 것입니다.웹 서비스 호출 중에 '기다려주십시오'표시하십시오.
나는 allsorts를 시도했지만 기쁨이 없습니다. 아무도 도와 줄 수 있습니까?
공공 부울 UsernameIsAvailable (:
이private OnClickListener RegistrationListener = new OnClickListener() {
public void onClick(View v) {
ClearFieldHighlighting();
if (ValidateData()) {
if (IsOnline()) {
if (UsernameIsAvailable()) {
try {
iNETUserID = CreateOnlineUser();
} catch (Exception e) {
}
..more 코드 .. 여기
}
은 'UsernameIsAvailable'기능이다 : 요청으로, 여기에 내 코드의 섹션입니다) {
Boolean bUsernameIsAvailable = false;
SoapObject request = new SoapObject(TA.sNAMESPACE,
TA.METHOD_IsUsernameAvailable);
request.addProperty("sUsername", sEmail);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(
TA.WEBSERVICES_URL);
try {
androidHttpTransport.call(TA.SOAP_ACTION_IsUsernameAvailable,
envelope);
SoapObject thisresponse = (SoapObject) envelope.bodyIn;
for (int i = 0; i < thisresponse.getPropertyCount(); i++) {
Object obj = thisresponse.getProperty(i);
SoapPrimitive soapPrimitive = (SoapPrimitive) obj;
bUsernameIsAvailable = Boolean.parseBoolean(soapPrimitive
.toString());
}
} catch (Exception e) {
}
return bUsernameIsAvailable;
}
나는 KSoap2 w HICH 웹 서비스 물건을
감사 마이크
덕분에 나는 이해한다 나는 블록 안 UI 스레드, 그냥해야합니다!여기 내 코드의 섹션 : 개인 OnClickListener를 RegistrationListener는 = 새로운 OnClickListener를() { \t \t 공공 무효 온 클릭 (보기 V) { \t \t \t ClearFieldHighlighting(); \t \t \t 경우 (ValidateData()) {\t \t \t \t 경우 (IsOnline()) {\t \t \t \t \t (UsernameIsAvailable()) { \t \t \t \t \t \t 시도 { \t \t \t \t 경우 \t \t \t iNETUserID = CreateOnlineUser(); \t \t \t \t \t \t} 캐치 (예외 전자) { \t \t \t \t \t \t} 그것은 그것이 내가 계속해야하는 부울 결과를 반환으로 문제를 일으키는 UsernameIsAvailable에 대한 호출입니다! – Mike