rt,我new一个Thread来获取网络数据,在我的主代码中执行完线程之后才执行UI更新,我的UI更新因为实际需要必须写在方法里,不能写在Hanlder中,所以求大神给解决方案,下面是我部分代码
这是代码
SyncThread st1 = new SyncThread();
st1.start();
weatherselect();(方法进行UI更新)
下面是线程的代码
public class SyncThread extends Thread {
@Override
public void run() {
JSONObject dataJson = new JSONObject(responseString);
JSONObject retData = dataJson.getJSONObject("retData");
JSONObject today = retData.getJSONObject("today");
JSONArray forecast=retData.getJSONArray("forecast");
}
@Override
public State getState() {
return super.getState();
}
}
Handler+Thread Thread进行网络请求 请求结束之后 用主线程的Handler sendMesssage() 然后在Handler的handleMessage中 更改UI
1.采用callable+future;其中future的get方法会阻塞当前线程
2.采用一个变量来记录状态,然后一个处理修改状态,ui那个就不断轮询状态是否有改变。
如果有帮助,希望结帖
Android只能在主线程进行UI操作,如果不想用Handler的方式在子线程更新UI,可以用AsyncTask(或者其他的第三方库)进行异步操作。
线程结束直接发消息不行么?