android – 从服务器返回响应时完成活动,但等待动画结束

android – 从服务器返回响应时完成活动,但等待动画结束,第1张

概述我通过Volley向服务器发送请求;发送后,增加一个显示请求数的变量. VolleyGeneral.getInstance().addToRequestQueue(jsonObj,TAG);numberOfReq++; 然后,当我得到响应时,减少该变量. @Overridepublic void onResponse(JSONObject response){ numberOfReq- 我通过Volley向服务器发送请求;发送后,增加一个显示请求数的变量.
VolleyGeneral.getInstance().addToRequestQueue(JsonObj,TAG);numberOfReq++;

然后,当我得到响应时,减少该变量.

@OverrIDepublic voID onResponse(JsONObject response){    numberOfReq--;}

另一方面,我正在显示一个图像,使用淡入淡出动画2秒然后我完成了活动并转到下一个活动.

但我想在完成活动之前等待所有服务器响应.所以我写这个部分是这样的:

@OverrIDepublic voID onAnimationEnd(Animation anim){    while(numberOfReq == 0){        numberOfReq = -1;        startActivity(intent);        finish();        break;    }}

如果服务器在2秒之前发送响应,则一切都是Okey.

但是如果在2秒后收到回复,活动就没有完成.

解决方法 也许我不理解这个问题,因为答案似乎非常简单.只要活动“准备完成”就设置一个标志,然后在onResponse()中检查这个条件.

onAnimationEnd()或最后一个onResponse()将首先运行,第二个应该开始第二个活动.例如:

private boolean mReadytoproceed;@OverrIDepublic voID onAnimationEnd(Animation anim){    if (numberOfReq == 0)        startOtherActivityAndFinish();    else       mReadytoproceed = true;}@OverrIDepublic voID onResponse(JsONObject response){    numberOfReq--;    if (mReadytoproceed && numberOfReq == 0)        startOtherActivityAndFinish();}

(注意:确保减量和比较不受其他请求线程的影响,可能使用锁或使用AtomicInteger).

总结

以上是内存溢出为你收集整理的android – 从服务器返回响应时完成活动,但等待动画结束全部内容,希望文章能够帮你解决android – 从服务器返回响应时完成活动,但等待动画结束所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存