0

我需要能够在 WebView 中加载 URL/文件,然后在 X 秒后,加载另一个 URL/文件(例如存储在数组中)

我可以成功加载网页 1,但是当我在第一个 .loadURL() 方法之后放置一个 Thread.sleep() 调用,然后是一个带有新文件引用的新 .loadURL() 调用,运行应用程序时,第一个文件确实不显示,而是跳转到第二个。

代码:

file = new File(file_1.html");
webView.loadUrl("file:///" + file.getAbsolutePath());

try {
    Thread.sleep(1000*10); //  10 seconds
} catch (InterruptedException e) {
    e.printStackTrace();
}

file = new File(file_2.html");
webView.loadUrl("file:///" + file.getAbsolutePath());

如您所见,这不在循环中,因为这是我的另一个问题,我不知道如何将其实现为循环(我至少想在处理循环之前让这部分工作)

谢谢!

4

1 回答 1

2

您需要在 Thread 或 Handler 中执行您的代码

file = new File(file_1.html");
webView.loadUrl("file:///" + file.getAbsolutePath());

new Handler().postDelayed(new Runnable() {

            public void run() {

                file = new File(file_2.html");
                webView.loadUrl("file:///" + file.getAbsolutePath());
            }

        }, 1000);

或者

Thread t = new Thread() {
            public void run() {
                try {
                    //task 1...
                    Thread.sleep(1000);
                    //task 2...
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {

            }
        }
};

t.start();

带计时器:

timer = new Timer();
timer.schedule(new MyTask(), 0, 5000);

class MyTask extends TimerTask {

        @Override
        public void run() {
            file = new File("file_1.html");
            webView.loadUrl("file:///" + file.getAbsolutePath());

            try {
                Thread.sleep(1000 * 10); // 10 seconds
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            file = new File("file_2.html");
            webView.loadUrl("file:///" + file.getAbsolutePath());

        }
    }
于 2013-06-12T11:10:58.490 回答