0

这是我的活动课

 public class VisitmmActivity extends Activity{
 private WebView visitmmWebView;
 private static final String VISITMM_URL = "http://mobile.dev.fio/";

/**
 * called when activity is created
 */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    IntializeWebView();
}

public void IntializeWebView(){
    setContentView(R.layout.visitmm_main);
    visitmmWebView = (WebView) findViewById(R.id.webview_visitmm);

    visitmmWebView.setWebViewClient(new WebViewClient());
    visitmmWebView.loadUrl(VISITMM_URL);

    WebSettings webSettings = visitmmWebView.getSettings();
    visitmmWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    visitmmWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webSettings.setJavaScriptEnabled(true);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);    //To change body of overridden methods use File | Settings | File Templates.
    IntializeWebView();
}

/**
 * Make back works for browser history
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if ((keyCode == KeyEvent.KEYCODE_BACK) && visitmmWebView.canGoBack()) {
        visitmmWebView.goBack();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
}

AndroidManifest.xml在这儿

  <activity
        android:name=".seagames.visitmm.VisitmmActivity"
        android:label="@string/app_name"
        android:configChanges="orientation"
        android:hardwareAccelerated="true">
  </activity>

问题是当我在手机上旋转屏幕时,应用程序将加载原始阶段(index.php)。我该如何解决?我试图找出其他解决方案。但是,没有用。请帮我!!!

4

2 回答 2

1

首先,您不应该在 onCongiurationChange() 方法中调用 InitialiseWebView()。

这是您对类似 SO 问题的回答

于 2013-09-28T09:31:00.523 回答
0

我试着找出这个!这样就可以解决这个问题了。但是,我不知道什么会导致其他缺点。因为,一些资源说“它已被弃用”,“它是内存泄漏”。反正也能解决。但是,屏幕旋转时性能有点慢。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.visitmm_main);
    visitmmWebView = (WebView) findViewById(R.id.webview_visitmm);
    visitmmWebView.setWebViewClient(new WebViewClient());

    WebSettings webSettings = visitmmWebView.getSettings();
    visitmmWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    visitmmWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webSettings.setJavaScriptEnabled(true);
    if(savedInstanceState ==null){
        visitmmWebView.loadUrl(VISITMM_URL);
    }
 }

 /**
 *  Save current activity or stage
 */

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    visitmmWebView.saveState(outState);
}

/**
 * Restore current activity on screen orientation
 */
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
    super.onRestoreInstanceState(savedInstanceState);
    visitmmWebView.restoreState(savedInstanceState);
}
于 2013-09-28T09:16:19.893 回答