Darpansコードは機能しません。少なくとも、パラメータの進行状況はwhile
、の次の呼び出しによってのみ変更されないためです。代わりにこれを試してください:
private long starttime = 0;
public void onProgressChanged(WebView view, int progress) {
Log.v(TAG, "progressChanged: " + progress);
if(progress == 10) starttime = System.currentTimeMillis();
long secondsSinceStart = (System.currentTimeMillis() - starttime) / 1000;
if(progress < 100) {
Log.v(TAG, "seconds since start: " + secondsSinceStart);
if(secondsSinceStart > 5){
view.stopLoading();
Log.d(TAG, "TIMEOUT -> Stopped.");
}
} else {
Log.v(TAG, progress + "% completed in: " + secondsSinceStart + " seconds");
}
}
残念ながら、これはサーバーへの接続が確立される場合にのみ機能します。そうでない場合は、onProgressChanged
2回だけ呼び出されます。10%と100%で、ロードが中止されます。