首页 > 解决方案 > 每次迭代内的Android延迟循环

问题描述

我有以下代码:

                    Timer timer = new Timer();
                    timer.schedule(new TimerTask() {
                        public void run() {
                            for (int i = 0; i <= 10; i++) {

                                Log.d("LOG", "i: " + i);
                            }
                        }
                    }, 5000);

我想将 I 从 0 增加到 10,延迟 5 秒,循环内的每个增量。

目前,代码在 5 秒后执行并异步运行 for 循环,而不是在每次交互之间等待 5 秒。此代码大约需要一分钟才能完成。

标签: android

解决方案


好的,因此在我使用的延迟的情况下在 for 循环中进行迭代,Thread.sleep但这将导致应用程序变为空白,直到它完成执行 for 循环,因为它在 UI 上运行。为了克服这个问题,我在后台运行 thread.sleep。完整代码如下:

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {

                    for(int i=0;i<10;i++)
                    {
                        Thread.sleep(5000);
                        Log.d("LOG", "i: "+i);
                    }
                } catch (Exception e) {

                }
            }
        }).start();

推荐阅读