我有一個應用程序從文本文件中讀取網站,然後計算將網頁完全加載到網頁視圖所需的時間。我嘗試通過獲取以毫秒爲單位的時間來計算時間,然後將網址加載到webview中,然後在網頁完成webview加載並獲取兩者之間的差異後得到時間,但總是爲0。任何想法爲什麼?加載網頁所需的時間應該大於0?計算網頁在webview中完全加載所花費的時間
public class MainActivity extends Activity {
// NUMSITES will be the number of websites contained in the sites.txt file.
int NUMSITES = 4;
int curSite = 0;
long startTime = 0;
long endTime = 0;
long totTime = 0;
boolean start = true;
Calendar cal = Calendar.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
final WebView wb = (WebView) findViewById(R.id.webView1);
final String[] sites = new String[NUMSITES];
getWebsites(sites);
// Listed as optimal settings for HTML5 (may need testing?).
// Ref.
// http://stackoverflow.com/questions/10097233/optimal-webview-settings-for-html5-support
wb.getSettings().setJavaScriptEnabled(true);
WebSettings settings = wb.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
wb.setFocusable(true);
wb.setFocusableInTouchMode(true);
wb.getSettings().setRenderPriority(RenderPriority.HIGH);
wb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wb.getSettings().setDatabaseEnabled(true);
wb.getSettings().setAppCacheEnabled(true);
wb.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
WebViewClient client = new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
@Override
public void onLoadResource(WebView view, String url) {
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view,
String url) {
return null;
}
// On page finished, retrive next website from string array and load
// it.
@Override
public void onPageFinished(WebView view, String url) {
//
endTime = cal.getTimeInMillis();
totTime = endTime - startTime;
Log.d("Time", "Time: " + totTime);
Log.d("Time", "Start Time: " + startTime);
Log.d("Time", "End Time: " + endTime);
if (curSite < NUMSITES) {
startTime = cal.getTimeInMillis();
wb.loadUrl(sites[curSite]);
curSite++;
}
}
};
wb.setWebViewClient(client);
// Initial webpage
wb.loadUrl("https://sites.google.com/site/imagesizetesting/one-1");
}
我見過類似問題的解決方案:http://stackoverflow.com/questions/3702627/onpagefinished-not-firing-correctly-when-rendering-web-page。希望這可以幫助。 –
看起來像圖片監聽器已經在API級別12中被描述爲不幸。 – johns4ta