问题描述:我在主线程中调用WebService,通过handleMessage成功获取服务器返回的Json字符串。不过我还需要调用另外一个WebService的接口,需要把上一个返回的的字符作为传入参数。现在的问题是不知道如何把handleMessage中的变量返回到主线程中。请问该如何做到,代码中就是想在onCreate中获取instanceId这个参数,该如何实现?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
init() ;
setListen();
getData();
private void getData(){
new Thread() {
public void run() {
Looper.prepare();
myscanData= WebServiceUtil.getscanlist(taskId,locationId,userId,tokenSecurityLogin,mHandler);
System.out.println("扫描巡更点后:"+myscanData); //获取巡更点的实例
Toast.makeText(getApplication(),instanceId,Toast.LENGTH_SHORT).show();
//show();
Looper.loop();
}
}.start();
}
** Toast.makeText(getApplication(),instanceId,Toast.LENGTH_SHORT).show();
}
............................................
final Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case GET_XunJianScan:
System.out.println("进入线路巡更点");
XunJianInstanceBean bean=new XunJianInstanceBean();
if (!msg.obj.toString().equals("error")) {
try {
myScanList.clear();
String strByJson = msg.obj.toString();
//Json的解析类对象
JSONArray jsonArray = new JSONObject(strByJson).getJSONArray("lzq");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = ((JSONObject) jsonArray.opt(i));
String ID = obj.getString("ID");
String Remark = obj.getString("Remark");
String taskid=obj.getString("taskid");
String locationid=obj.getString("locationid");
String uid=obj.getString("uid");
String createdate1=obj.getString("createdate1");
String place=obj.getString("place");
bean.setID(ID);
bean.setRemark(Remark);
bean.setTaskid(taskid);
bean.setLocationid(locationid);
bean.setUid(uid);
bean.setCreatedate1(createdate1);
bean.setPlace(place);
** instanceId=ID;**
}
}
catch (Exception e) {
e.printStackTrace();
}
}
else {
Toast.makeText(getApplication(), "加载巡检数据失败", Toast.LENGTH_SHORT).show();
}
break;
}
if (mProgressDialog != null) {
mProgressDialog.dismiss();
}
}
};