Loop morto em backkey webview android para redirecionar link href

Cheguei a um loop morto no aplicativo de visualização da web do Android com backkey ao lidar com links de redirecionamento.

Por exemplo, quando minha visualização da web foi iniciada, ela vai para link0.

No link0, há um link href que vincula ao link1. Link1 redireciona para o link2.

Então, se eu clicar no link1, ele irá para o link1 e, em seguida, redirecionará para o link2. Quando clico em backkey, ele deve voltar ao link0, no meu caso. Mas, em vez disso, vai para o link1, que redireciona de volta para o link2 novamente. Então eu nunca tenho a chance de voltar.

A chave de acesso funciona corretamente com outros links, se eles não forem links de redirecionamento.

Eu pesquisei na Web por ajuda, mas não encontrei uma pergunta relacionada.

By the way, o backkey funciona no navegador da internet como esperado. Mas não no webview.

Abaixo está meu código, para você tentar. Como você pode ver no código, eu tentei onBackPressed e onKeyDown, mas neigher funciona.

Obrigado pela sua amável ajuda. Eu tenho lutado com isso por um tempo.

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

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"
/>

questionAnswers(4)

yourAnswerToTheQuestion