起因:在android使用get请求获取验证码时需要重开一个线程,这就造成了我无法获取到从服务器后台返回的数据

解决方法:创建全局变量,将返回的数据解析后返回给handler,再在handler中将数据赋值给全局变量

部分代码如下:

private void getYzm(int money) {
// TODO Auto-generated method stub
String res = "";
Date nowTime = new Date();
SimpleDateFormat time = new SimpleDateFormat("yyMMddHHmm");
String tel = PhoneUtils.getPhoneNumber(context);
final String paramData = "imsi=" + imsi + "&imei=" + imei + "&tel="
+ tel + "&money=" + money + "&app="
+ app+ "&time=" + time.format(nowTime);
String resultCode; new Thread(){
public void run() {
final String gainCode = HttpRequest.sendGet(url,
paramData);
        // url是请求验证码地址,是一个全局变量,这里没有列出来,paramData是请求参数,HttpRequest是一个工具类,下面发链接
String resultCode;
JSONObject dataJson;
String orderid;
try {
dataJson = new JSONObject(gainCode);
resultCode = dataJson.getString("resultCode");
orderid=dataJson.getString("orderid");
if("200000".equals(resultCode)){
msg = handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("orderid", orderid);// 将服务器返回的订单号传到Bundle中,,再通过handler传出
msg.setData(bundle);
msg.arg1 = 0; // 0为获取验证码成功
handler.sendMessage(msg);
}else{
msg = handler.obtainMessage();
msg.arg1 = 1; // -1为获取验证码失败
handler.sendMessage(msg);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }.start(); }
class MsgHandler extends Handler {
private Activity activity;
public MsgHandler(Activity activity){
this.activity=activity;
}
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.arg1) {
case 0:
dialog.show();
Bundle bundle=msg.getData();
orderid=bundle.getString("orderid");// 这里的orderid是一个全局变量
break;
case 1:
showInfo("获取验证码失败!");
break;
case 2:
showInfo("订购成功!");
break;
case 3:
showInfo("提交验证码错误,请重新测试!");
break;
default:
break;
}
super.handleMessage(msg);
}

最新文章

  1. ASP.Net MVC 5 in Xamarin Studio 5.2
  2. Windows中断那些事儿
  3. 【Git学习笔记】远程仓库
  4. SPSS数据分析—多重线性回归
  5. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法
  6. Linux(Redhat)下redis安装
  7. ssh框架简单搭建
  8. Python | 多种编码文件(中文)乱码问题解决
  9. 浅谈OGNL表达式
  10. el-upload 上传文件和上传图片的基本用法
  11. [Luogu P3295][SCOI 2016]萌萌哒
  12. Go数组求和
  13. eval方法
  14. HBase 架构脑图
  15. Codeforces 901C Bipartite Segments
  16. org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'list' in 'c
  17. docker修改镜像名称
  18. pycharm 的包路径设置export PYTHONPATH=$PYTHONPATH
  19. 100度享乐电商网 jQuery
  20. jqGrid常用属性和方法介绍

热门文章

  1. tomcat 配置 https 几点注意
  2. UVALive-8138 Number Generator 概率dp+优化
  3. flask_sqlalchemy和sqlalchemy联系区别及其使用方式
  4. 经典alsa 录音和播放程序
  5. buntu Rhythmbox解决中文乱码
  6. ContextLoaderListener的说明
  7. LaTeX soul包
  8. 工具-VS CODE快捷键
  9. android优化 清除无效代码 UCDetector
  10. 使用Android Studo开发NDK之Gradle的配置(能debug C代码)