Dead Loop im Android Webview Backkey für Redirect HREF Link

Beim Umleiten von Links stieß ich in der Android-Webview-Anwendung mit Backkey auf eine tote Schleife.

Als zum Beispiel mein Webview gestartet wurde, geht es zu link0.

In link0 gibt es einen href-Link, der auf link1 verweist. Link1 zu Link2 korrigieren.

Wenn ich also auf link1 klicke, geht es zu link1 und dann weiter zu link2. Wenn ich auf backkey klicke, sollte es in meinem Fall zurück zu link0 gehen. Aber stattdessen geht es zu Link1, der wieder zurück zu Link2 umleitet. Ich habe also nie die Chance zurückzukehren.

Der Rücktaste funktioniert ordnungsgemäß mit anderen Links, wenn es sich nicht um umgeleitete Links handelt.

Ich habe die Websites nach Hilfe durchsucht, aber keine entsprechende Frage gefunden.

Übrigens funktioniert der Backkey im Internetbrowser wie erwartet. Aber nicht in der Webansicht.

Unten ist mein Code, damit Sie es versuchen können. Wie Sie im Code sehen können, habe ich sowohl onBackPressed als auch onKeyDown ausprobiert, aber der nächste funktioniert.

Vielen Dank für Ihre freundliche Hilfe. Ich habe eine Weile damit zu kämpfen.

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

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage