欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

服务器时间延迟,如何处理从服务器延迟响应时间'力逼近'

发布时间:2025/3/11 编程问答 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 服务器时间延迟,如何处理从服务器延迟响应时间'力逼近' 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用下面的示例代码来执行login过程。您可以使用AsyncTask来执行登录过程。

LoginActivity类,它使用AsyncTask。

在Login按一下按钮,我executing的AsyncTask。

在登录过程中,这将显示一个ProgressDialog

过程完成后,驳回ProgressDialog并显示状态信息给用户

类代码:

import android.app.Activity;

import android.app.AlertDialog;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.os.AsyncTask;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class LoginActivity extends Activity {

private Button login_Button = null;

private EditText userNameText = null;

private EditText passwordText = null;

private String uName = "";

private String pass = "";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.test_login);

login_Button = (Button) findViewById(R.id.cmdDoLogin);

userNameText = (EditText) findViewById(R.id.editTextUserName);

passwordText = (EditText) findViewById(R.id.editTextPassword);

login_Button.setOnClickListener(new OnClickListener() {

public void onClick(View paramView) {

uName = userNameText.getText().toString().trim();

pass = passwordText.getText().toString().trim();

if (uName.equals("") || pass.equals("")) {

Toast.makeText(LoginActivity.this,

"Fill both username and password fields",

Toast.LENGTH_SHORT).show();

} else {

new LoginActivity.DoLoginProcess().execute(); // calling the AsyncTask here

}

}

});

}

private class DoLoginProcess extends AsyncTask {

ProgressDialog pd = null;

@Override

protected void onPreExecute() {

super.onPreExecute();

pd = new ProgressDialog(LoginActivity.this);

pd.setTitle("Logging In...");

pd.setMessage("Please wait...");

pd.setCancelable(false);

pd.show();

}

@Override

protected Integer doInBackground(Void... params) {

int loginStatus = 0 ; // treat this as loginStatus. 0 = login failed; 1=login success. You can return this value to onPostExecute function

//*********************************************

// do login process over internet here. Hope you already have the code to do the login process over internet.

//*********************************************

return loginStatus;

}

@Override

protected void onPostExecute(Integer status) {

super.onPostExecute(status);

pd.dismiss(); // dismiss the progress dialog

if (status == 0) { // login failed

AlertDialog alertDialog = new AlertDialog.Builder(

LoginActivity.this).create();

alertDialog.setTitle("Error");

alertDialog.setMessage("Login failed");

alertDialog.setButton("OK",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

LoginActivity.this.finish();

dialog.cancel();

}

});

alertDialog.setIcon(android.R.drawable.ic_dialog_info);

alertDialog.show();

} else if(status == 1) { // login success

AlertDialog alertDialog = new AlertDialog.Builder(

LoginActivity.this).create();

alertDialog.setTitle("Success");

alertDialog.setMessage("Login success");

alertDialog.setButton("OK",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog,

int which) {

LoginActivity.this.finish();

dialog.cancel();

}

});

alertDialog.setIcon(android.R.drawable.ic_dialog_info);

alertDialog.show();

}

}

}

}

的test_login布局XMl文件:

android:id="@+id/loginbglayout"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="10dp" >

android:id="@+id/holderLayout"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true" >

android:id="@+id/row1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center" >

android:id="@+id/textViewUserName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="10dp"

android:gravity="right"

android:text="UserName"

android:textColor="#ffffff" />

android:id="@+id/editTextUserName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1" >

android:id="@+id/row2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:gravity="center" >

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="10dp"

android:gravity="right"

android:text="Password"

android:textColor="#ffffff" />

android:id="@+id/editTextPassword"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"

android:inputType="textPassword" />

android:id="@+id/row3"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="10dp"

android:gravity="center" >

android:layout_width="0dp"

android:layout_height="2dip"

android:layout_weight="1"

android:focusable="false" />

android:id="@+id/cmdDoLogin"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="right"

android:text="Login" >

总结

以上是生活随笔为你收集整理的服务器时间延迟,如何处理从服务器延迟响应时间'力逼近'的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。