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

使用下面的示例代码来执行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" >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值