我正在Android Studio中开发一个Android应用。
假设我有一个方法checkSomething
和doSomething
。
在我的doSomething
方法中,我有一段看起来像这样的代码:
int i = checkSomething();
if(i >= x){
runThisMethod();
}else{
runThis();
}
在调试过程中,我发现我的代码进入if statement
并转到else
,然后执行checkSomething()
方法,为时已晚,因为我们已经超过了{{1 }}
我不确定如何解决此问题,因为我从来没有这样的人。
//编辑
在我的if statement
方法中,我从Firebase接收数据,并与ArrayList中的数据进行检查。会造成延误吗?如果可以,我该如何解决?
我的checkSomething
方法。
checkSomething
答案 0 :(得分:1)
据我了解,您正在检查Firebase的返回结果,这是异步方法,这意味着您应该等到Firebase方法的结果准备好后再进行其他检查。
如果将Firebase作为同步功能处理,那么您将无法获得正确的结果,因为您正在检查的值仍然不存在。几天后它将存在。这就是为什么您应该正确实现Firebase功能的原因。
如果您使用的是Firebase Realtime数据库,则可以在参考页Read and Write Data on Android
中找到良好的示例。希望这会有所帮助