0

URL/ファイルを WebView にロードし、X 秒後に別の URL/ファイルをロードできるようにする必要があります (たとえば、配列に格納されています)。

Web ページ 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

スレッドまたはハンドラーでコードを実行する必要があります

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 に答える