当接收到来自多个 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 :)
在启动画面的 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 :)