我知道排球对网络图书馆非常有用。我的问题是我必须多次调用API请求,是否有机会在单独的类中调用此代码并每次都使用它?String url = "sameurl";JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d(TAG, response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); } }) // Adding request to request queueAppController.getInstance().addToRequestQueue(jsonObjReq);
2 回答
![?](http://img1.sycdn.imooc.com/533e4c5600017c5b02010200-100-100.jpg)
ABOUTYOU
TA贡献1812条经验 获得超5个赞
实际上,其想法是在单独的线程中通过网络调用API。每当需要执行网络调用时,都需要在一个单独的线程中执行此操作,Volley提供了一个有用的接口以方便的方式执行此操作。
因此,无论何时在创建JSON请求时创建Volley的新实例,它都会创建一个单独的线程并开始执行网络调用。主要的UI线程代码执行将继续进行,而无需等待网络调用完成-无论如何,这是多线程的基本思想。GC会根据需要处理所有垃圾收集。
如果您坚持使用相同的Volley对象来进行所有网络API调用,则需要以同步方式进行API调用。也就是说,当网络呼叫返回任何响应时,您需要启动下一个呼叫。此实现取决于您在那里的情况。如果要以异步方式执行网络调用,则每次使用多线程环境的异步行为调用网络API时,都必须创建Volley对象的新实例。
添加回答
举报
0/150
提交
取消