【问题标题】:youtube audio is always playing in Android webview when I press back button当我按下后退按钮时,youtube 音频总是在 Android webview 中播放
【发布时间】:2016-05-09 18:20:44
【问题描述】:

我在 Fragment 中有一个 WebView 和一个 youtube 视频。当我按下返回按钮时,youtube 音频继续播放:

View view = inflater.inflate( R.layout.fragment, container, false );
configView( view );


view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener( new View.OnKeyListener()
{
    @Override
    public boolean onKey( View v, int keyCode, KeyEvent event )
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            if ( null != webView )
            {
                webView.loadUrl("about:blank");
            }
        }
        return false;
    }
} );

另一方面,当我将应用程序置于后台时,onPause() 事件正常工作:

@Override
public void onPause()
{
    super.onPause();
    if ( null != webView )
    {
        webView.loadUrl( "about:blank" );
    }
}

为什么当我按下返回按钮时它不起作用?有什么解决办法吗?

【问题讨论】:

    标签: android audio webview youtube


    【解决方案1】:

    当播放 Youtube 视频时,返回按钮事件属于 webview。片段未处理此事件。 解决办法是:

    webView.setOnKeyListener( new View.OnKeyListener()
        {
            @Override
            public boolean onKey( View v, int keyCode, KeyEvent event )
            {
                if ( keyCode == KeyEvent.KEYCODE_BACK )
                {
                    if ( null != webView )
                    {
                        webView.stopLoading();
                        webView.destroy();
                    }
                }
                return false;
            }
        } );
    

    【讨论】:

      【解决方案2】:

      更通用的方法:

      @Override
      protected void onResume() {
          super.onResume();
          try {
              WebView.class.getMethod("onResume").invoke(wvBorwser);
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
      
      @Override
      protected void onPause() {
          super.onPause();
          try {
              WebView.class.getMethod("onPause").invoke(wvBorwser);
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-13
        • 2019-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 2016-03-30
        相关资源
        最近更新 更多