其他分享
首页 > 其他分享> > 在异步okhttp请求回调函数中更新listview

在异步okhttp请求回调函数中更新listview

作者:互联网

个人理解okhttp同ajax访问逻辑相似,正常情况下,安卓更新ui界面是在主线程中的,在回调函数中是不允许更新ui的,采用如下代码即可实现更新ui

下面字体放大部分,开辟新线程

new Thread(new Runnable() {
                 @Override
                 public void run() {
                     System.out.println("执行了okhttp");
                     FormBody formBody = new FormBody.Builder()
                             .add("area",area)
                             .add("building",place)
                             .add("week",week)
                             .add("xq",week_day)
                             .add("num", String.valueOf(new Date().getTime())).build();
                     //服务器地址String url="http://82.157.106.56:8009/vtServlet";
                     Request request = new Request.Builder().url("http://:8009/vtServlet")
                             .post(formBody).build();
                     Call call = okHttpClient.newCall(request);
                     try {
                         Response response = call.execute();
                         result = response.body().string();
                         runOnUiThread(new Runnable() {
                             @Override
                             public void run() {
                                 //更改UI;
                                 new Handler().postDelayed(new Runnable() {
                                     @Override
                                     public void run() {
                                         istadapter(parseJSONWithJSONObject(result));
                                     }
                                 },1 *1);  
                             }
                         });
                         System.out.println(result);
                     } catch (IOException e) {
                         e.printStackTrace();
                     }
                 }
             }
             ).start();
         }

 

标签:异步,Runnable,void,add,ui,result,okhttp,new,listview
来源: https://www.cnblogs.com/ljq20204136/p/16270935.html