我在WebView
中有Fragment
个视频。当我按下后退按钮时,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" );
}
}
按下按钮时,为什么它不起作用?任何解决方案?
答案 0 :(得分:2)
播放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;
}
} );
答案 1 :(得分:0)
更通用的方法:
@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();
}
}