tuve un problema muy similar, pero tuvo que hacer un par de adiciones a conseguir que funcione con varias versiones (incluido ICS).
En la actividad principal de la aplicación agregué una versión ligeramente diferente de lo que Jason ofreció.
<activity
android:name=".MyMainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name" >
Tenía esta trabajando en la pre-nido de abeja con:
<activity
....
android:configChanges="orientation|keyboardHidden"
.... >
que tenía que hacer el primer ejemplo para ponerlo en marcha en todas las versiones. Actualmente estoy usando fragmentos y ActionBarSherlock para compatibilidad con versiones anteriores.
También ha cambiado la forma en que estaba ahorrando y recarga:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Set up webview object
View v = inflater.inflate(R.layout.webview_layout, container, false);
webview = (WebView)v.findViewById(R.id.webview_fragment);
webview.getSettings().setJavaScriptEnabled(true);
// Check to see if it has been saved and restore it if true
if(savedInstanceState != null)
{
if (savedInstanceState.isEmpty())
Log.i(tag, "Can't restore state because bundle is empty.");
else
{
if (webview.restoreState(savedInstanceState) == null)
Log.i(tag, "Restoring state FAILED!");
else
Log.i(tag, "Restoring state succeeded.");
}
}
else
{
// Load web page
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setPluginsEnabled(true);
webview.getSettings().setBuiltInZoomControls(false);
webview.getSettings().setSupportZoom(false);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setAllowFileAccess(true);
webview.getSettings().setDomStorageEnabled(true);
webview.loadUrl(mTabURL);
}
return v;
}
El código para el método de guardar el estado instancia:
@Override
public void onSaveInstanceState(Bundle outState)
{
if(webview.saveState(outState) == null)
Log.i(tag,"Saving state FAILED!");
else
Log.i(tag, "Saving state succeeded.");
}
Espero que esto ayude.
La segunda entrada de manifiesto es solo una prueba porque estaba muy decepcionado. Puedo prometerle que configurar configchange = "orientation" NO funciona para el fragmento dentro de la actividad. –
@ Profete162 No estoy seguro de lo que quiere decir con "NO funciona para el fragmento dentro de la actividad". El fragmento interno no debería tener ningún impacto en la recreación de la actividad. ¿Cuál es el objetivo de tu SDK? Ver [enlace] (http://stackoverflow.com/questions/6968105/orientation-change-in-honeycomb) para una posible respuesta. – PJL
¡Responde bien, irá a trabajar y probará esta tarde, pero estoy seguro de que tu respuesta será aceptada! –