如何仅在java中完全执行前一个函数后调用函数
我有一个视图类,它有两个方法,比如func1和func2。在func1中,有一个4秒的计时器。现在,当我在活动中访问这些方法时,我只想在func1中的4秒完成后调用func2 现在,当我在活动中访问这些时,如何确保只有在func1完全执行后才调用func2。谢谢。如果如何仅在java中完全执行前一个函数后调用函数,java,android,Java,Android,我有一个视图类,它有两个方法,比如func1和func2。在func1中,有一个4秒的计时器。现在,当我在活动中访问这些方法时,我只想在func1中的4秒完成后调用func2 现在,当我在活动中访问这些时,如何确保只有在func1完全执行后才调用func2。谢谢。如果fun2()应该总是在fun1()中的计时器完成后执行,那么只需在onfinish()方法中调用它,如下所示: public void func1(){ new CountDownTimer(4000, 1000) {
fun2()
应该总是在fun1()
中的计时器完成后执行,那么只需在onfinish()
方法中调用它,如下所示:
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
这是调用函数的好地方,原因是,
onFinish
回调将在时间结束时触发。这将确保实现您的预期行为。在倒计时结束后调用func2()
是否有任何错误:
@Override
public void onFinish() {
// TODO Auto-generated method stub
func2();
}
实际上,这是调用func2()
唯一合理的地方,因为在调用onFinish()
之前,您不知道倒计时已经结束。这就是您要找的吗
public void onFinish() {
func2();
}
在java中,JRE按顺序执行每行中指定的指令。在这里,我看到您有一个特殊的要求,因为多线程
以下方法可用于解决此问题:
选项1:
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
在属于func1()的onFinish()方法中调用func2()。这样您就可以确定它是在func1()代码执行之后执行的
@Override
public void onFinish() {
func2();
}
选项2:
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
由于要在func1()方法中设置等待时间,请在调用模块中调用func2()之前添加计时器
func1();
setTimeout(function () {
func2();
}, 5000);
希望能有帮助 您可以在onFinish()
中的func1()
倒计时方法中调用fun2()
如:
public void func1(){
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
}
@Override
public void onFinish() {
func2();
}
}.start();
}
public void func2(){
}
请解释在什么情况下要调用func1和func2。如果在func1未完成时调用func2,您希望发生什么情况?