Възможно ли е да се измери времето за зареждане на всички ресурси на уеб изглед? Например за зареждане на цялата мрежа използвам:
public void onPageStarted(WebView view, String url, Bitmap favicon) {
startingTime = System.currentTimeMillis();
super.onPageStarted(view, url, favicon);
}
public void onPageFinished(WebView view, String url) {
timeElapsed = System.currentTimeMillis() - startingTime;
super.onPageFinished(view, url);
}
но за измерване на натоварването на CSS, изображения и т.н. използвам
public HashMap<String, Long> resources = new HashMap<String, Long>();
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request){
resources.put(request.getUrl().toString(), System.currentTimeMillis());
WebResourceResponse response = super.shouldInterceptRequest(view, request);
return response;
}
public void onLoadResource(WebView view, String url) {
if(resources.containsKey(url)){
Long timeStartResource = resources.get(url);
Long timeElapseResource = System.currentTimeMillis() - timeStartResource;
}
super.onLoadResource(view, url);
}
Мислех, че методът onLoadResource се изпълнява, когато ресурсът е зареден, но според документацията
public void onLoadResource (WebView изглед, String url).
Уведомете хост приложението, че WebView ще зареди ресурса, указан от дадения url.
И
public WebResourceResponse shouldInterceptRequest (WebView изглед, WebResourceRequest request)
Уведомете хост приложението за заявка за ресурс и позволете на приложението да върне данните. Ако върнатата стойност е нула, WebView ще продължи да зарежда ресурса както обикновено. В противен случай ще се използват върнатият отговор и данните.
И двете се изпълняват преди зареждане на ресурса. Има ли начин да се измерят тези времена?