gpt4 book ai didi

android - 在网络服务调用期间显示 'please wait'

转载 作者:行者123 更新时间:2023-11-29 16:21:25 31 4
gpt4 key购买 nike

我有一个通过 .net Web 服务检查用户名可用性的 Activity ,我需要在调用期间显示“请稍候”消息,因为它可能需要一两秒钟 - 我已经尝试过 AsyncTask 和 Threading,但问题是我实际上,我想阻塞主(也是唯一)线程,直到 Web 服务调用完成,因为我要根据它的结果来处理其他逻辑。

我已经尝试了各种方法但没有任何乐趣 - 谁能帮忙吗?

根据要求,这是我的代码的一部分:

private OnClickListener RegistrationListener = new OnClickListener() {
public void onClick(View v) {
ClearFieldHighlighting();
if (ValidateData()) {
if (IsOnline()) {
if (UsernameIsAvailable()) {
try {
iNETUserID = CreateOnlineUser();
} catch (Exception e) {
}

..更多代码..

这是“UsernameIsAvailable”函数:

公共(public) bool 用户名IsAvailable() {

    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,它是一个外部 jar 文件来处理 Web 服务内容

谢谢迈克

最佳答案

您可以按以下方式构建代码:

private class MyBackgroundTask extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
// show dialog
}
protected Void doInBackground(Void... unused) {
// background processing
}
protected void onPostExecute(Void unused) {
// dismiss dialog
continueProcessing();
}
}

private OnClickListener RegistrationListener = new OnClickListener() {
public void onClick(View v) {
// non-blocking code

new MyBackgroundTask().execute();
}
}

public void continueProcessing() {
// the rest of the main activity
}

关于android - 在网络服务调用期间显示 'please wait',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109760/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com