1

我正在开发一个带有 WebView 的应用程序,但该网站在后台有音乐。当按下后退按钮时,我有代码将返回上一页,直到它可以再返回并返回主菜单。问题是当它返回主菜单时,音乐不会停止,我需要它停止。对不起,只是初学者。任何帮助都是极好的!

代码:

       @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN){
            switch(keyCode)
            {
            case KeyEvent.KEYCODE_BACK:
                if(myWebView.canGoBack() == true){
                    myWebView.goBack();
                }else{
                    this.finish();
                }
                return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }

xml

 <WebView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/webView"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" />
4

2 回答 2

3

将您的 XML 更改为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView 
       android:id="@+id/webView"
       android:layout_width="match_parent"
       android:layout_height="match_parent" />

</LinearLayout>

在您的活动中获取您的 LinearLayout(就在您获得 WebView 的同一个地方):

LinearLayout root;

(然后在 onCreate() 中)

root = (LinearLayout) findViewById(R.id.root);

然后

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode) {
        case KeyEvent.KEYCODE_BACK:
            if(myWebView.canGoBack()) {
                myWebView.goBack();
            }
            else {
                root.removeView(myWebView); // <- 
                myWebView.removeAllViews(); // <- add these lines
                myWebView.destroy();        // <-
                this.finish();
            }
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
于 2013-07-02T16:37:06.973 回答
0

在 manifest.xml 中尝试 >> 将其android:launchMode="singleTask"用于 webview 活动

于 2013-07-02T16:20:48.100 回答