从多个Volley请求收到最后一个响应时启动Android活动

时间:2016-06-15 02:36:53

标签: android asynchronous android-volley semaphore

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

SharedPreferences

和另一个获得类别。

当我收到这两个请求的最后一个响应时,我想启动我的MainActivity:

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

无论响应是第一次还是最后一次。

这是一种信号方式吗?

2 个答案:

答案 0 :(得分:1)

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

当count为2时,启动MainActivity。

  

请对您正在进行的截击请求使用同一个班级实例。

答案 1 :(得分:0)

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

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

请注意,您可能希望将此值放在onError上,如果发生错误,您将永远无法进入主要活动:)