我有这个代码,它的唯一的问题是,如果我离开WebView,甚至关闭该应用程序,甚至按下电源,播客的音频继续播放.
有人会知道如何阻止吗?
这是代码:
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(); }
解决方法
您应该分别从Activity的onPause()和onResume()调用
WebView’s
onPause()
和
onResume()
.
Pauses any extra processing associated with this WebView and its@H_403_14@ associated DOM,plugins,JavaScript etc. For example,if this WebView@H_403_14@ is taken offscreen,this could be called to reduce unnecessary cpu or@H_403_14@ network traffic. When this WebView is again “active”,call onResume().
还有pauseTimers()
,它影响了您的应用程序中的所有WebViews:
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.