Android - when exiting a WebView, the audio still keeps playing

android, android-webview

Solution

You should call through to the WebView's `onPause()` and `onResume()` from your Activity's `onPause()` and `onResume()`, respectively.

Pauses any extra processing associated with this WebView and its associated DOM, plugins, JavaScript etc. For example, if this WebView is taken offscreen, this could be called to reduce unnecessary CPU or network traffic. When this WebView is again "active", call onResume().

There's also `pauseTimers()`, which affects all of the WebViews within your application:

Pauses all layout, parsing, and JavaScript timers for all WebViews. This is a global requests, not restricted to just this WebView. This can be useful if the application has been paused.

Problem

I have this code which works and the only problem with it is that if I leave the WebView and even close the app, and even press power on the phone, the audio from the podcasts keeps playing. Would anyone know how to stop that? Here is the code: ``` 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(); } ```

Original source