2013-07-13 239 views
0

我有最奇怪的錯誤。我運行這段代碼而發揮流行的商業播客:Android WebView - 在webview中播放播客時,離開屏幕後聲音不會停止

@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

做一些onStop(),如負載空白頁進WebView,或者調用它clearView()

您看到的「錯誤」與桌面瀏覽器的行爲方式沒有什麼不同。如果您在桌面瀏覽器中加載該URL,並且切換到瀏覽器中的其他選項卡,或者最小化瀏覽器窗口,播客將繼續播放。

3

onStop()事件中調用myWebView.clearView()事件。

當它不再可見時,活動和webview不一定會被銷燬。這與在桌面上最小化瀏覽器類似。

查看活動lifecycle瞭解更多信息。