Android JsonObjectRequest在调试时工作,但在运行应用程序时不工作

Android JsonObjectRequest在调试时工作,但在运行应用程序时不工作,android,Android,我正在尝试使用截取来解析JSON数据,并尝试在ExpandableListView中放大它。当我启动应用程序时,流不会进入内部 JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, TRENDING_STOCKS_URL, null, new Response.Listener<JSONObject>() { @Override public void

我正在尝试使用截取来解析JSON数据,并尝试在ExpandableListView中放大它。当我启动应用程序时,流不会进入内部

       JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, TRENDING_STOCKS_URL, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
        ...........
        ..........

        }
数据并没有显示在列表视图中,但当我调试应用程序时,流并没有进入上面的代码中,而是数据正确显示


有人能告诉我这里发生了什么,我应该怎么做吗?

onResponse中的代码没有被跳过,而是在响应到达时进入回调,这可能就是您最终看到数据的原因

此代码不会立即运行,onResponse是由请求对象提供的接口的实现,在响应到达时调用该接口

阅读有关回调处理和接口的内容,对于简单的回调和网络内容,两者都很容易理解

要查看响应何时返回,请在onResponse的开头打印响应本身response.toString,并在发送请求后稍等片刻,以便在日志中看到它

编辑:

另外,确保在onResponse中收到数据时,您实际上正在更新UI成员,即,如果是列表视图,请确保调用

adapter.notifyDataSetChanged()
在保存数据列表的适配器上,在确定数据已更新后,案例中的最佳位置可能位于onResponse内。 这将是:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, TRENDING_STOCKS_URL, null, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
      ...// parse the response and put it inside the list<SomeData>
      ...// off-course I mean the list that's referenced in your adapter
      adapter.notifyDataSetChanged

    }

有几天我也遇到了类似的问题。我不知道你的问题在多大程度上是由类似的情况引起的。在我的例子中,我使用的是单打截击模式,问题如下:

活动1:请求JSONObject-->正确返回JSONObject,并填充适配器。适配器有一个将触发活动2的侦听器

活动2:请求JSONObject-->正确返回JSONObject,并填充适配器。用户完成活动2后,返回活动1

活动1:创建JSONObjectRequest并将其添加到Volley中,但随后也不会调用onResponse和OnErrorResponse

这只发生在运行模式下,但在调试时工作正常

解决方案:
将请求添加到截击时,请确保在每个活动上添加不同的标记。当移动到另一个活动时,请确保使用活动标记取消所有请求。这就解决了我的问题。

请尽快回复,我被困在这里了。提前感谢..有些时间数据有时不在ListView中。我如何克服这个问题?调试您的回调并与邮递员一起检查服务,看看是否有任何不同。您是否可以发布日志?08-26 11:56:41.790 3405-3405/com.stockal.app I/stockal app﹕ TrendingStocks已成功加载08-26 11:56:42.864 3405-3405/com.stockal.app I/stockal app﹕ 电话:08-26 11:56:42.864 3405-3405/com.stockal.app I/stockal app﹕ HOMEFragment连接到HomeView 08-26 11:56:42.942 3405-3429/com.stockal.app W/EGL_仿真﹕ eglSurfaceAttrib未实施08-26 11:56:42.942 3405-3429/com.stockal.app W/OpenGLRenderer﹕ 未能在表面0xb42d1cc0上设置EGL_SWAP_行为,错误=EGL_SUCCESSBro:我的意思是编辑问题并添加日志的一大部分,添加一份关于onResponse内部情况的打印,以便您可以查看它是否正常工作,并将该打印添加到问题:另外-我正在编辑我的答案,也请查看