0

当我旋转我的设备时,这会再次为他的班级充电。例如,如果我在将方向费用再次更改为 google 时进行了 google 搜索。

我已经尝试过:

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  setContentView(R.layout.principal);
}

和 onRestoreInstanceState 和 onSaveInstanceState。但我的问题仍然存在。如果有人可以帮助我举例说明如何做到这一点,我将不胜感激。

谢谢!


我已经解决了这个问题,我需要执行 if (savedInstanceState == null) :

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.principal);

    webview.setWebViewClient(new WebViewClient());

    if (savedInstanceState == null)
    {
        webview.loadUrl("http://www.apple.es");
    }
}

  @Override   
    protected void onSaveInstanceState(Bundle outState)
    {  
      super.onSaveInstanceState(outState);  
      // Save the state of the WebView    
      webview.saveState(outState);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState)  
    {  
      super.onRestoreInstanceState(savedInstanceState);
      // Restore the state of the WebView
      webview.restoreState(savedInstanceState);
    }

我希望比我的问题和我的解决方案能对某人有所帮助!

4

3 回答 3

0

Christian,您必须在 android 开发者网站上查看此文档,并了解 romain guy 如何存储他最后加载的图像并在配置屏幕更改时调用它们!解决方案是使用

  1. onRetainNonConfigurationInstance()
  2. getLastNonConfigurationInstance()

我也总是参考这个教程来摆脱android的屏幕变化行为

希望对你有帮助

于 2012-05-17T09:15:07.103 回答
0

使用以下代码

public void onConfigurationChanged(Configuration newConfig) {
    yourWebView.loadUrl(yourUrl);
}

请参阅此链接 Activity restart on rotation Android

于 2012-05-17T08:55:20.593 回答
0

在您的 AndroidManifest 文件中添加 configChanges。例如:

<activity android:name="YourActivityName"
          android:configChanges="orientation">
</activity>

并将您当前的网址保存在本地变量中并将其加载到 onConfigChanges

@Override
public void onConfigurationChanged(Configuration newConfig) {
    yourWebView.loadUrl(yourUrl);
}
于 2012-05-17T08:06:48.813 回答