Android – 退出WebView时,audio仍然在播放

我有这个代码,它的工作原理和唯一的问题是,如果我离开WebView,甚至closures应用程序,甚至按下电话,播客的audio不断播放。

有谁知道如何阻止?

这里是代码:

public class PodcastsActivity extends BaseActivity //implements ActionBar.OnNavigationListener { WebView webview = null; @Override public void onCreate(Bundle savedInstanceState) { //setTheme(R.style.Theme_Sherlock_Light); super.onCreate(savedInstanceState); //setContentView(R.layout.podcasts); webview = new WebView(this); webview.getSettings().setAppCacheEnabled(false); webview.getSettings().setJavaScriptEnabled(true); webview.setInitialScale(1); webview.getSettings().setPluginState(PluginState.ON); webview.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); //webSettings.setBuiltInZoomControls(true); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); //webSettings.getMediaPlaybackRequiresUserGesture(); webSettings.setAllowContentAccess(true); webSettings.setEnableSmoothTransition(true); webSettings.setLoadsImagesAutomatically(true); webSettings.setLoadWithOverviewMode(true); webSettings.setSupportZoom(true); webSettings.setUseWideViewPort(true); setContentView(webview); webview.loadUrl("http://www.stitcher.com/podcast/entrepreneuronfirecom/entrepreneur-on-fire-tim-ferriss-other-incredible-entrepreneurs"); } // public void onBackPressed ( ) // { // Class.forName("com.***.HTML5WebView").getMethod("onPause", (Class[]) null). // invoke(html5WebView, (Object[]) null); // } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true; } return super.onKeyDown(keyCode, event); } @Override public void onStop() { super.onStop(); // your code webview.clearView(); } 

Solutions Collecting From Web of "Android – 退出WebView时,audio仍然在播放"

您应该分别从Activity的onPause()onResume()调用WebView的onPause()onResume()

暂停与此WebView及其关联的DOM,插件,JavaScript等相关的额外处理。例如,如果将此WebView从屏幕上移开,则可以调用此方法来减less不必要的CPU或networking通信量。 当此WebView再次“活动”时,请调用onResume()。


还有pauseTimers() ,它会影响应用程序中的所有WebView:

暂停所有WebView的布局,parsing和JavaScript计时器。 这是一个全局的请求,并不局限于这个WebView。 如果应用程序已经暂停,这可能很有用。