当接收到来自多个 Volley 请求的最后一个响应时开始 Android activity

Start Android activity when receiving the last response from multiple Volley requests

在启动画面的 OnCreate 方法中,我发出了 2 个不同的 Volley 请求:

RequestQueue queue = AppController.getInstance().getRequestQueue();
GsonRequest<WPPosts> myReq = new GsonRequest<WPPosts>(urlJson, WPPosts.class, null,createMyReqSuccessListener(),createMyReqErrorListener());
queue.add(myReq);

和另一个获取类别。

我想在收到这 2 个请求的最后响应时启动我的 MainActivity :

private Response.Listener<WPPosts> createMyReqSuccessListener() {
    return new Response.Listener<WPPosts>() {
        @Override
        public void onResponse(WPPosts response) {...}

无论响应先到还是后到。

这会是信号量方法吗?

只需创建一个扩展 Response.Listener 的 class。这个 class 还应该包含一个静态变量计数。当您收到回调 onResponse() 时,计数会增加 1。

当计数为 2 时启动 MainActivity。

Please use the same instance of the class for both the volley requests your are making.

您不需要扩展侦听器或类似的东西。

您可以只在启动画面中设置一个静态 int,您可以在这些请求的 onResponse 中递增它。 onResponse 在主线程中传递,因此您无需担心此处的线程问题。

请注意,您可能希望将此值设置为 onError,如果发生错误,您将永远无法进入主界面 activity :)