Java 如何知道处理程序何时完成工作

Java 如何知道处理程序何时完成工作,java,android,handler,Java,Android,Handler,我读过关于Handler的书,了解它的功能,但我需要一些超越它的东西 我有一个带按钮的游戏应用程序。我想在更改按钮上的图像之前等待几秒钟,它确实会等待-但问题是,第3部分的下一行代码开始运行时没有等待延迟结束 public sumMethod () { ////////// Long lines of code ////// PART 1 !!!!!! final Handler handler = new Handler(); handler.post

我读过关于Handler的书,了解它的功能,但我需要一些超越它的东西

我有一个带按钮的游戏应用程序。我想在更改按钮上的图像之前等待几秒钟,它确实会等待-但问题是,第3部分的下一行代码开始运行时没有等待延迟结束

public sumMethod () {
    ////////// Long lines of code
    //////    PART 1  !!!!!!

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        public void run() {  
            allBt[x] [y].setImageResource(R.drawable.ic_launcher,"none");
        )}   
    }, 3000);    //// DELAY

    //////// more line of code calling many other methods  PART 3 !!!!!
}
我一直在考虑使用boolean flag,但应用程序陷入了无限循环


谁能帮我一下,或者告诉我怎么等?换句话说:如何等待处理程序完成?

我阅读了有关处理程序的内容,并了解它的功能。。。不,你没有。。。我一直在考虑使用布尔标志,而。。。如何等待坏主意,坏主意。。。特别是当sumMethod从onClick of view在主线程fx上调用时,您将得到一个。。。halnder将在内联Runnable实现的SetImageResourceCallInside run方法之后完成它的工作。。。换句话说,把第三部分放在运行方法中…难道没有其他方法吗?在我的代码中这样做非常复杂,是的,有一个白痴的方法1。添加字段private isFinished=false;2.postDelayed put isFinished之前=false;3.毕竟bt[x][y]。。。内部运行put isFinished=真;四,。在第3部分之前添加while!isFinished{Thread.sleep10;}。。。就像我说的只有傻瓜才会这么做。。。正常的方式是把第三部分放进去。。。但这是你的选择…为什么不简单地将第3部分包装成一个方法,并将其称为内部运行?因为我在与计算机对抗,而计算机的思维方法是不同的