繁体   English   中英

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

[英]How to stop handler.postDelayed in for-loop?

对于使用“ handler.posDelayed”的这种类型,我没有看到真正的答案。

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

        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..
            }
        };

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

也似乎你有悬而未决Runnables当你的,你应该删除Activity说“再见”,于是尝试调用removeCallbacks()onPause / onStop / onDestroy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM