我有一個啓動畫面的應用程序,幾秒後打開具有WebView的主要活動。問題是,只有這樣,主要活動纔開始加載URL,有時需要幾秒鐘的時間。這種等待似乎很愚蠢。不過,我預先加載WebView的嘗試並未取得成功。Android在WebView顯示時預先加載了一個網址,同時顯示的是啓動畫面
問題的實質是,初始屏幕和主要活動是兩個不同的活動,WebView是資源綁定(佈局)到主要活動。複製WebView(webview2 = webview1)不起作用,這並不奇怪。
對此提出建議?
我有一個啓動畫面的應用程序,幾秒後打開具有WebView的主要活動。問題是,只有這樣,主要活動纔開始加載URL,有時需要幾秒鐘的時間。這種等待似乎很愚蠢。不過,我預先加載WebView的嘗試並未取得成功。Android在WebView顯示時預先加載了一個網址,同時顯示的是啓動畫面
問題的實質是,初始屏幕和主要活動是兩個不同的活動,WebView是資源綁定(佈局)到主要活動。複製WebView(webview2 = webview1)不起作用,這並不奇怪。
對此提出建議?
請按照以下步驟操作。
1)在屏幕上設置閃屏佈局。
2)開始一個新的線程,在這個線程中膨脹一個包含webview的佈局。
3)在webView中加載url。將webview客戶端設置爲webview,以瞭解您的頁面加載何時完成。 There is a quick example。覆蓋onPageFinished。
4)現在打破線程並將此虛擬視圖傳遞給下一個活動,並將其設置爲setContentView(inflatedView);
謝謝。
使用Spash屏幕在您的webview上進行佈局,並在X秒後將setVisibility設置爲View.GONE。如果你在onCreate上加載webview,它將被加載在飛濺後面,當閃屏消失你已經加載Webview :)
我嘗試了你的建議,但是,當我嘗試膨脹線內它會拋出一個鈍的異常(二進制XML文件行#15:錯誤膨脹類android.webkit.WebView)。在後面的堆棧跟蹤中,更多的信息是這樣的: java.lang.RuntimeException:無法在未調用Looper.prepare()的線程中創建處理程序.. – Jahmic
創建處理程序並調用處理程序從那個線程。你不能從線程oter訪問UI元素而不是UI線程。或者在UI線程中做所有的事情。你將不得不尋找解決辦法。 –
現在很好用。該頁面仍然需要太長時間才能加載。 ;) – Jahmic