等到方法完成后再次调用该方法

时间:2013-09-14 17:04:55

标签: java android methods

我有一个“做事”的方法,我的ListView名为method1()。这是从method2()调用的。 method2()可以非常频繁地运行(可能每秒一次)。我想我有一个问题,如果在method2()完成之前调用method1()(因此再次调用method1()),method1只运行一次 - 它不运行第二次时间。

有解决方法吗?我考虑过将boolean添加到method1()并在开始时将其设置为true,最后将false设置为{{1}},但我无法想到我可以采用的方式让这个工作。

编辑:

我做了一些测试,并且这个方法是连续调用的,所以这个问题已经过时了。我为此道歉。

3 个答案:

答案 0 :(得分:1)

使功能同步: http://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

这将确保在多线程环境中只有一个线程可以同时访问该函数。

答案 1 :(得分:0)

为什么不使用TimerTask

Timer timer = new Timer();

        TimerTask tt = new TimerTask()
        {

            @Override
            public void run()
            {
                if(!isRunning)
                {
                    // Repeat You can update UI using runOnUiThread(runnable)
                }
                if(jobDone)
                {
                    this.cancel();

                }
            }
        };
        timer.schedule(tt, 0, 1);

只是一招(

答案 2 :(得分:-2)

为方法1提供一个public static Boolean并将其设置为false。如果您愿意,可以将其称为“完成”。 方法1完成后,将该变量设置为true。

方法2可以在method1调用之前运行while循环。

while(method1.done == false){

} 方法1