/**
* 当Activity执行onPause()时让WebView执行pause
*/
@Override
public void onPause() {
super.onPause();
try {
if (mWebNewsdetailsFragment != null) {
mWebNewsdetailsFragment.getClass().getMethod("onPause").invoke(mWebNewsdetailsFragment, (Object[]) null);
isOnPause = true;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 当Activity执行onResume()时让WebView执行resume
*/
@Override
public void onResume() {
super.onResume();
try {
if (isOnPause) {
if (mWebNewsdetailsFragment != null) {
mWebNewsdetailsFragment.getClass().getMethod("onResume").invoke(mWebNewsdetailsFragment, (Object[]) null);
}
isOnPause = false;
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 该处的处理尤为重要:
* 应该在内置缩放控件消失以后,再执行mWebView.destroy()
* 否则报错WindowLeaked
*/
@Override
public void onDestroy() {
super.onDestroy();
if (mWebNewsdetailsFragment != null) {
mWebNewsdetailsFragment.getSettings().setBuiltInZoomControls(true);
mWebNewsdetailsFragment.setVisibility(View.GONE);
long delayTime = ViewConfiguration.getZoomControlsTimeout();
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Tools.runOnUI(new Runnable() {
@Override
public void run() {
if (mWebNewsdetailsFragment != null) {
mWebNewsdetailsFragment.destroy();
mWebNewsdetailsFragment = null;
}
}
});
}
}, delayTime);
}
isOnPause = false;
}