当前位置: 代码迷 >> Android >> android-Handler的运用
  详细解决方案

android-Handler的运用

热度:42   发布时间:2016-05-01 20:15:14.0
android--Handler的使用
Handler基本概念:
       Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

   使用一个自己项目的代码来介绍一下Handler。

private Handler handler = new Handler() {		@Override		public void handleMessage(Message msg) {			super.handleMessage(msg);			switch (msg.what) {				case 0:					SaleUtil.showToast(context, R.string.tip_bind_succ, 1000);					// 存储当前绑定的账户					userInfo.setVerifyFlag(1);					UserInfoDao.addUser(context, userInfo);										break;				case 1:					SaleUtil.showToast(context, R.string.tip_bind_fail, 1000);					UserInfoDao.addUser(context, userInfo);					break;				case 2:					SaleUtil.showToast(context, R.string.tip_common_error, 1000);					break;			}		}	};


然后在点击事件中添加相应的代码:(这是一个用于登陆验证的代码,点击登陆时先弹出一个进度条,同时进行登陆验证,验证后弹出一个Toast)

public void onClick(View v) {				final String userPhone = userPhoneEditText.getText().toString().trim();				final String userPwd = userPwdEditText.getText().toString().trim();				// 手机号码或登录密码为空时给出提示				if ("".equals(userPhone) || "".equals(userPwd))					SaleUtil.showToast(context, context.getResources().getString(R.string.tip_empty_account), 1000);				else {					userInfo = new UserInfo();					userInfo.setUserPhone(userPhone);					userInfo.setUserPwd(userPwd);					userInfo.setVerifyFlag(0);					// 验证过程中给出进度提示					progressDialog = ProgressDialog.show(context, null, getResources().getText(R.string.tip_binding), true, true);					new Thread() {						@Override						public void run() {							// 异步调用webservice接口验证账号的有效性							String verifyResult = DataRequestUtil.verifyUser(context, userPhone, userPwd);							if (null == verifyResult)					handler.sendEmptyMessage(2);							else					handler.sendEmptyMessage(Integer.parseInt(verifyResult));					}					}.start();				}				dialog.dismiss();			}

  相关解决方案