我需要能够在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());
如您所见,这不是循环的,这是我的另一个问题,我不知道如何将其实现为循环(我至少想在解决循环之前,使此位起作用)
谢谢!
最佳答案
您需要在线程或处理程序中执行代码
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());
}
}