Iam在我的应用程序中使用WebView加载远程url。它能够成功加载远程URL。但是每当我尝试在背景到前台之间切换我的应用程序时,有时我的包含WebView的当前活动就会刷新。如何当我从后台切换到前景时,我避免刷新我的WebView。我在我的Activity.May应用程序版本中根本不使用onResume()2.2.My AndroidManifest.xml文件中的Activity标记如下。
<activity
android:name=".Main"
android:screenOrientation="portrait" android:configchanges="orientation|keyboardHidden|locale|uiMode|mcc|mnc|touchscreen|keyboard">
</activity>
感谢和安培;此致 Venkat。
答案 0 :(得分:2)
尝试覆盖WebViewClient,例如:
webView.setWebViewClient(new WebViewClient(){
private boolean alreadyLoaded = false;
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (alreadyLoaded)
return;
alreadyLoaded = true;
super.onPageStarted(view,url,favicon);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
答案 1 :(得分:0)
将android:launchMode =“singleTask”添加到AndroidManifest.xml中的主要活动
答案 2 :(得分:0)
您必须保存网页浏览的状态,并在onCreate
时savedInstanceState != null
恢复该状态。
webview有一个函数saveState(..)
,您可以使用该函数将状态保存在活动的onSaveInstanceState(..)
中。
在您的活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
if(savedInstanceState != null){
mWebView.restoreState(savedInstanceState);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mWebView.saveState(outState);
}