API级别10的WebView.onPause()

时间:2014-07-31 12:49:31

标签: android video webview youtube fragment

我目前正在WebView中打开一个youtube频道。 它加载所有罚款,我可以播放频道视频没有问题。 但是当我向后导航,并且包含WebView的片段被删除时,音频会继续播放。

为了防止这种情况,我正在调用片段onPause()中的 WebViews onPause(),如下所示:

@Override
public void onPause() {
    super.onPause();
    webView.onPause();
}

这就像一个魅力。 但我的问题是 WebView.onPause()仅适用于API 11 及更高版本。但我的应用必须最低API 10 ... 所以我的问题是:如何停止所有API级别的音频播放?

2 个答案:

答案 0 :(得分:0)

假设片段中只有一个WebView,请使用以下代码暂停片段中的所有 WebView:

// In the Fragment's onPause
@Override
public void onPause(){

    super.onPause();

    // Check if WebView is null first since onPause can occasionally get called before all your views are initialized
    if(mWebView != null) {

        if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){

            mWebView.onPause(); // Normal onPause for versions greater than or equal to API 11

        }

        mWebView.pauseTimers(); // This does the same thing as onPause but does it for all the WebViews, it works on all API levels
    }

}

让我知道它是否适合您。它应该,但WebView可能很挑剔,并且总是按照你想要的方式运行。

答案 1 :(得分:-1)

我认为你需要改变

webView.onPause 

为:

this.callHiddenWebViewMethod("onPause");