Gen*_*nik 13 android android-webview
我有这个代码可以工作,唯一的问题是,如果我离开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();
}
Run Code Online (Sandbox Code Playgroud)
qui*_*int 27
您应该分别调用WebViewonPause()和onResume()Activity onPause()以及onResume().
暂停与此WebView及其关联的DOM,插件,JavaScript等相关的任何额外处理.例如,如果此WebView从屏幕上移除,则可以调用此方法以减少不必要的CPU或网络流量.当此WebView再次"活动"时,请调用onResume().
还会pauseTimers()影响应用程序中的所有WebView:
暂停所有WebView的所有布局,解析和JavaScript计时器.这是一个全局请求,不仅限于此WebView.如果应用程序已暂停,这可能很有用.
接受的答案对我不起作用 - 仅onPause在片段中使用不足以在 Android 9 上停止音乐。我还必须这样做:
override fun onDestroyView() {
webview?.destroy()
super.onDestroyView()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8452 次 |
| 最近记录: |