我正在使用网络视图应用程序的音频网站, 问题是由于我使用onPause
方法,当手机屏幕锁定时应用程序冻结:
public void onPause() {
super.onPause();
mWeb.onPause();
mWeb.loadUrl("about:blank");
}
现在,如果我不使用mWeb.loadUrl("about:blank");
,那么音乐就会在后台继续运行
如果我使用它并且手机进入睡眠模式,应用程序会冻结
如何解决当锁定屏幕显示时应用程序不应冻结以及关闭应用程序时音乐无法播放的问题?
我使用pauseTimers()
方法在活动的onPause()
方法中阻止视频/音频在后台播放。然后在onResume()
方法中,我使用resumeTimers()
和WebView.onResume()
方法来冻结网络视图。另外,我建议不要在onPause()
中使用"about:blank",而是在活动onDestroy()
方法中使用。这是我的完整实现:
@Override
protected void onPause() {
super.onPause();
stopVideo();
webview.pauseTimers();
}
@Override
public void onResume() {
super.onResume();
webview.resumeTimers();
webview.onResume();
}
private void stopVideo() {
try {
Class.forName("android.webkit.WebView")
.getMethod("onPause", (Class[]) null)
.invoke(webview, (Object[]) null);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
webview.loadUrl("about:blank");
webview.destroy();
webview = null;
}