你能在Android中测量在webView中加载网页所需的时间吗?
有很多关于Android中WebView加载时间过长的问题,但是我希望能够准确地计算完成加载所需的时间,然后显示结果 这可能吗?我可以启动一个计时器,但是WebView在加载后是否有一个HTML OnLoad样式的调用 我的代码是基本的:你能在Android中测量在webView中加载网页所需的时间吗?,android,time,webview,load,android-webview,Android,Time,Webview,Load,Android Webview,有很多关于Android中WebView加载时间过长的问题,但是我希望能够准确地计算完成加载所需的时间,然后显示结果 这可能吗?我可以启动一个计时器,但是WebView在加载后是否有一个HTML OnLoad样式的调用 我的代码是基本的: /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { supe
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.pageloadtest);
webView = (WebView) findViewById(R.id.webView1);
webView.loadUrl("http://www.airometricwireless.com");
}
这会很好地加载页面。我只需要计算一下需要多长时间 要完成页面加载,请使用
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
// do your stuff here
}
});
也许科学上不准确,但我想你可以打电话
long a, b;
mWebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url) {
a = (new Date()).getTime;
}
public void onPageFinished(WebView view, String url) {
b = (new Date()).getTime;
}
});
然后是b-a
希望能有帮助
致以最诚挚的问候。您可以使用,但正如文档所说,“调用onPageFinished()时,渲染图片可能尚未更新。”
此外,它仅对简单页面有意义,因为它不会考虑iFrame或动态加载的内容,例如加载其他JavaScript(如社交媒体按钮、广告、跟踪脚本等)的JavaScript。通常,正是这些内容导致页面感觉不好
当人们说“加载很慢”时,他们通常的意思是“我需要很长时间才能与页面交互”,这与加载资产所需的时间非常不同。为此,您可能希望测试JavaScript何时触发类似于onDOMReady的事件,或者如果不使用该事件,则测试非延迟JS何时实际初始化
本质上,一旦页面中出现任何动态加载行为,onPageFinished
就变得毫无意义,您需要使用JS进行度量
与任何性能问题一样
在
WebViewClient
中有一个onPageStarted()
回调,您可以使用它来获取更准确的a
。