使用AsyncTask提高android线程的效率

 User user = (User) HttpUrlConnUtil.accessMedhodReturnObject(param, 

urlString);
if(null!=user){
saveUserMsg(user);
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return false;private class LoginTask extends AsyncTask<String,Void, Boolean>{
// 声明进度条对话框
private ProgressDialog progressDialog;
       //此方法在UI线程中执行
//任务被执行之后,立刻调用 UI线程。这步通常被用于设置任务,例如在用户界面显示一个进度条
@Override
protected void onPreExecute() {
// 创建ProgressDialog对象
progressDialog = new ProgressDialog(LoginActivity.this);
// 设置进度条风格,风格为圆形,旋转的
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置ProgressDialog 标题
progressDialog.setTitle("提示");
// 设置ProgressDialog 提示信息
progressDialog.setMessage("正在提交数据,请稍后。。。");
// 设置ProgressDialog 标题图标
progressDialog.setIcon(R.drawable.wait);
// 设置ProgressDialog 的进度条是否不明确
progressDialog.setIndeterminate(false);
progressDialog.show();
}
         //此方法在后台线程中执行
//onPreExecute()完成执行,立刻调用后台线程,这步被用于执行较长时间的后台计算。
//异步任务的参数也被传到这步。计算的结果必须在这步返回,将传回到上一步。
@Override
protected Boolean doInBackground(String... params) {
Map<String, String> param = new HashMap<String, String>();
param.put("account", params[0]);
param.put("password", params[1]);
String urlString = HttpUrlConnUtil.BASE_URL + "login.action";
try {

}
//此方法在UI线程中执行
//当后台计算结束时,调用 UI线程。后台计算结果作为一个参数传递到这步
@Override
protected void onPostExecute(Boolean result) {
if(null!=progressDialog&&progressDialog.isShowing()){
progressDialog.dismiss();
}
if(result){
startActivity(new Intent(LoginActivity.this,MainActivity.class));
}else{
showDialog("用户名称或者密码错误,请重新输入!");
}
}
}

你可能感兴趣的:(UI,android)