Проблема только в том, что создается бесконечный цикл.Он каждый раз переопределяет новый loadUrl.Например, это работает без проблем:
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if(!url.toLowerCase().contains("yahoo.com"))
{
view.loadUrl("http://yahoo.com");
return true;
}
return false;
}
Обратите внимание, что простое сохранение последнего переопределенного URL и сравнение с if(!url.equals(lastOverrideUrl))
не будет работать в этом случае (и многих других), так как URL автоматически изменяется"http://yahoo.com" до" http://www.yahoo.com/".