Bucle ininterrumpido en backkey webview backkey para redirigir enlace href

Llegué a un callejón sin salida en la aplicación de vista web de Android con tecla de retroceso al tratar con enlaces de redirección.

Por ejemplo, cuando mi webview comenzó, va al link0.

En link0, hay un enlace href que enlace a link1. Link1 redrect a link2.

Entonces, si hago clic en link1, irá a link1, luego redirigirá a link2. Cuando hago clic en la tecla de retroceso, debería volver al enlace0, en mi caso. Pero en su lugar, va al enlace 1, que redirige de nuevo al enlace 2. Así que nunca tengo la oportunidad de volver.

La tecla de retroceso funciona correctamente con otros enlaces si no son enlaces de redirección.

Busqué en Google para obtener ayuda, pero no encontré una pregunta relacionada.

Por cierto, la tecla de retroceso funciona en el navegador de Internet como se esperaba. Pero no en webview.

A continuación se muestra mi código, para que lo intentes. Como puede ver en el código, probé tanto onBackPressed como onKeyDown, pero neigher funciona.

Gracias por su amable ayuda. He luchado en esto por un tiempo.

================================================== ================================

public class MyActivity extends Activity 
{
    private WebView myWebView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myWebView = (WebView) findViewById(R.id.webview);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl("http://50.112.242.120/temp/");
        myWebView.setWebViewClient(new MyWebViewClient());
    }

    private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            myWebView.loadUrl(url);
            return true;
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if the key event was the Back button and if there's history
        if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
            myWebView.goBack();
            return true;
        }
        // If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        return super.onKeyDown(keyCode, event);
    }
}

.

// main.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

Respuestas a la pregunta(4)

Su respuesta a la pregunta