为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅在Java中完全执行前一个函数后才调用函数

如何仅在Java中完全执行前一个函数后才调用函数

明月笑刀无情 2021-04-06 20:22:37
有一个视图类,它有两个方法,比如说func1和func2。在func1中,有一个4秒的计时器。现在,当我在一个活动中访问这些方法时,我只想在func1中的4秒完成后才调用func2。现在,当我在活动中访问这些文件时,如何确保仅在func1完全执行后才调用func2。谢谢。
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

如果fun2()应始终在定时器输入fun1()完成后执行,则只需在onFinsih()方法内部调用即可,如下所示:


 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时间到时将触发回调。这将确保您实现预期的行为。


查看完整回答
反对 回复 2021-04-18
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

在Java中,JRE顺序执行每一行中指定的指令。在这里,由于多线程,我看到您有一个特殊的要求。


可以使用以下方法来解决此问题:


选项1:


在func1()的onFinish()方法内调用func2()。这样就可以确定它在func1()代码执行之后正在执行。


    @Override

    public void onFinish() {

      func2();

    }

选项2:


由于您是在func1()方法中设置等待时间的,因此在您的调用模块中调用func2()之前,请添加计时器。


func1();

setTimeout(function () {

    func2();

}, 5000);

希望能帮助到你!!


查看完整回答
反对 回复 2021-04-18
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您可以在中的func1()CountDownTimer方法中调用fun2()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(){


}


查看完整回答
反对 回复 2021-04-18
  • 3 回答
  • 0 关注
  • 332 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信