Android 截击请求延迟安卓截击
假设Android 截击请求延迟安卓截击,android,android-volley,Android,Android Volley,假设method1()仅验证文本框是否已填充而非为空,而method2()验证数据库中文本框的值是否重复 result1和result2是类布尔变量 如果文本框被填充,result1将为true,如果值没有重复项,result2将为true,因此method2有截击请求 method3()是一个向表中插入值的截击请求过程 我认为会发生的是: method1()将执行,result1将根据结果为真或假 method2()将执行,此方法中包含的截击过程将影响result2,result2将根据结果为
method1()
仅验证文本框是否已填充而非为空,而method2()
验证数据库中文本框的值是否重复
result1和result2
是类布尔变量
如果文本框被填充,result1
将为true
,如果值没有重复项,result2
将为true
,因此method2
有截击请求
method3()
是一个向表中插入值的截击请求过程
我认为会发生的是:
method1()
将执行,result1
将根据结果为真或假method2()
将执行,此方法中包含的截击过程将影响result2
,result2
将根据结果为真或假result1
和result2
将在if
语句中进行测试,如果两者都true
,则将进入method3()
method2
中的截击请求需要时间或延迟发生,并且在method2()的截击请求响应之前,代码继续执行if
语句检查result1
和result2
这意味着,即使整个表单有效,由于这种情况,result2
在if
语句检查期间将始终为false
这是我观察到的
所以现在我所做的是method3()
将在method2()
中的截击请求的onResponse
块上执行,method2()
将在method1()
的末尾执行
但它让我感觉不舒服,而且我对它感到不舒服,而且从按下按钮开始的所有事情的延迟让我感到不舒服,因为它太长了
我只是一名大学生,最近刚刚学习了安卓和截击,我不知道如何让它变得更好,或者如果有其他选择,请帮助我。如果我的解释听起来很愚蠢,我也很抱歉。如果有任何我可以改进这个过程,请告诉我。非常感谢。在截取中发生这种情况的原因是请求是异步发出的,在收到响应后执行您提供的回调。它不会阻止执行
要想通过截击来做你想做的事情,你需要将请求链接在一起。这意味着您将只在method1
的回调中执行method2
,并在method2
的回调中执行if语句
另一种方法,根据您的用例,可以使用倒计时闩锁
:
要做到这一点,您需要为每个要等待的请求增加倒计时锁存器的计数。然后在每个方法的响应中,您将倒计时闩锁。一旦闩锁计数达到0,等待将释放,允许执行if语句。当您得到result1 start method2时,当您得到result2 check and start method3时,您的意思是if(result1){method2();if(result2){method3();}?因为我试过了,但也没用。没有,但是你没有发布正确的代码,所以我不能给你写一个如何做到这一点的例子
method1();
method2();
if(result1 && result2)
{
method3();
}