如何在for循环中停止handler.postDelayed?

时间:2015-06-20 18:43:51

标签: java android for-loop handler runnable

我看到这种使用" handler.posDelayed"没有真正的答案。

所以,我执行" handler.posDelayed"多次使用for循环。问题是,当我离开活动并重新启动它时,新的对象和处理程序中的旧对象也会被执行。我不知道如何从处理程序中停止旧对象。

        private Handler handler = new Handler();

        private void startHandler() {

            handler.removeCallbacksAndMessages(runnable); // DOESN'T WORK

            long time = 0;
            for(int i = 0; i < balls.length; i++){
                handler.postDelayed(runnable, time + i);
            }
        }

        private Runnable runnable = new Runnable() {
            @Override
            public void run() {
                // Some code..
            }
        };

1 个答案:

答案 0 :(得分:1)

首先,您应该使用removeCallbacks(),而不是removeCallbacksAndMessages()

您的Runnables说“再见”时,您似乎还应该删除Activity,因此请尝试拨打removeCallbacks() / {{onPause 1}} / onStop