我有一个最奇怪的错误。我运行这个确切的代码来播放流行的商业播客:
@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");
它工作正常,我可以播放播客,但问题是,当我离开屏幕时,播客继续播放。
有人知道需要采取哪些措施来防止这种行为吗?
谢谢, 亚历
答案 0 :(得分:3)
在活动的myWebView.clearView()
事件中致电onStop()
。
活动以及webview在不再可见时不一定会被销毁。它类似于最小化桌面上的浏览器。
有关详细信息,请查看活动lifecycle。
答案 1 :(得分:2)
在onStop()
中执行某些操作,例如将空白页加载到WebView
,或者可能在其上调用clearView()
。
您看到的“错误”与桌面浏览器的行为方式没有什么不同。如果您在桌面浏览器中加载该URL,并切换到浏览器中的其他选项卡,或最小化浏览器窗口,播客将继续播放。