@Override public void run() { try { String url = "/computer/serach?componname=" + serachinput; Call call = okhttputil.request_get(url); Response execute = call.execute(); String string = execute.body().string(); JSONObject jsonObject = new JSONObject(string); data = jsonObject.getString("data"); handler.post(udpUIRunnable); } catch (Exception e) { e.printStackTrace(); }
时间: 2024-02-10 10:19:53 浏览: 28
这是一个实现了 Runnable 接口的匿名内部类,它定义了一个 run() 方法。在 run() 方法内部,它首先创建了一个字符串变量 url,它的值为 "/computer/serach?componname=" + serachinput。接着,它使用 okhttp 库的 request_get() 方法创建了一个 HTTP GET 请求,并将这个请求返回的 Call 对象存储在一个变量 call 中。然后,它执行这个请求并将得到的 Response 对象存储在一个变量 execute 中。接下来,它从 execute 对象中获取响应体的字符串形式,并将其存储在一个名为 string 的变量中。然后,它使用 JSONObject 类将 string 字符串解析为一个 JSONObject 对象,并从中获取一个名为 "data" 的字符串数据,并将其存储在 "data" 变量中。最后,它使用一个名为 "handler" 的 Android Handler 对象将 "data" 数据传递回 UI 线程,并在 UI 线程上运行一个名为 "udpUIRunnable" 的方法。如果在执行任何一个步骤时出现了异常,它将打印异常栈,并继续执行。
相关问题
public void serach(final String serachinput) { if (serachinput.equals("") || serachinput == null) { load(); } else { new Thread(new Runnable() { @Override public void run() { try { String url = "/computer/serach?componname=" + serachinput; Call call = okhttputil.request_get(url); Response execute = call.execute(); String string = execute.body().string(); JSONObject jsonObject = new JSONObject(string); data = jsonObject.getString("data"); handler.post(udpUIRunnable); } catch (Exception e) { e.printStackTrace(); } } }).start(); } }
这也是一段代码,它看起来是在一个 Android 应用程序中使用的。它定义了一个名为 "serach" 的方法,并接受一个名为 "serachinput" 的字符串参数。如果 "serachinput" 参数为空或为 null,则调用 "load" 方法来加载一些数据。否则,它创建了一个新线程,该线程向服务器发出 GET 请求以获取一些数据。请求的 URL 是 "/computer/serach?componname=" + serachinput,其中 "serachinput" 是传递给方法的参数。一旦请求完成,响应数据被解析为一个 JSONObject 对象,然后从中获取一个名为 "data" 的字符串数据,并将其存储在 "data" 变量中。最后,使用一个名为 "handler" 的 Android Handler 对象将 "data" 数据传递回 UI 线程,并在 UI 线程上运行一个名为 "udpUIRunnable" 的方法。
public void load(final int state){ new Thread(new Runnable() { @Override public void run() { String url = "/order/display/state?username=\'"+ MainActivity.loginusername+"\'&state="+state; Call call = okhttputil.request_get(url); try{ String string = call.execute().body().string(); JSONObject jsonObject = new JSONObject(string); data = jsonObject.getString("data"); handler.post(udpUIRunnable); }catch (Exception e){ e.printStackTrace(); } } }).start(); }
这段代码定义了一个 load 方法,它接受一个 int 类型的参数 state。这个方法会在一个新线程中执行,它首先构造一个 URL 字符串,然后使用 OkHttp 库发送一个 GET 请求,并将响应结果存储到一个字符串中。接着,它将响应字符串解析成一个 JSONObject 对象,并从中获取名为 "data" 的键的值,存储到 data 变量中。最后,它使用一个 handler 对象将一个 Runnable 对象 udpUIRunnable 发送到 UI 线程中,以更新 UI。这个 Runnable 对象会在前面的问题中介绍。这个方法的作用是从服务器获取订单数据,然后更新 UI 显示这些数据。