Android WebView - 在webview中播放播客时,离开屏幕后声音不会停止

时间:2013-07-13 14:19:39

标签: android android-webview podcast

我有一个最奇怪的错误。我运行这个确切的代码来播放流行的商业播客:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    WebView 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 webSettings = webview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setBuiltInZoomControls(true);
    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");           

它工作正常,我可以播放播客,但问题是,当我离开屏幕时,播客继续播放。

有人知道需要采取哪些措施来防止这种行为吗?

谢谢, 亚历

2 个答案:

答案 0 :(得分:3)

在活动的myWebView.clearView()事件中致电onStop()

活动以及webview在不再可见时不一定会被销毁。它类似于最小化桌面上的浏览器。

有关详细信息,请查看活动lifecycle

答案 1 :(得分:2)

onStop()中执行某些操作,例如将空白页加载到WebView,或者可能在其上调用clearView()

您看到的“错误”与桌面浏览器的行为方式没有什么不同。如果您在桌面浏览器中加载该URL,并切换到浏览器中的其他选项卡,或最小化浏览器窗口,播客将继续播放。