J'ai eu un problème très similaire mais j'ai dû faire quelques ajouts pour qu'il fonctionne avec différentes versions (y compris ICS).
Dans l'activité principale de l'application, j'ai ajouté une version légèrement différente de celle proposée par Jason.
<activity
android:name=".MyMainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name" >
Je l'ai fait fonctionner sur un pré-Honeycomb avec :
<activity
....
android:configChanges="orientation|keyboardHidden"
.... >
J'ai dû faire le premier exemple pour qu'il fonctionne sur toutes les versions. J'utilise actuellement les fragments et ActionBarSherlock pour la rétrocompatibilité.
J'ai aussi changé la façon dont je sauvegardais et rechargeais :
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;
}
Le code de la méthode de sauvegarde de l'état de l'instance :
@Override
public void onSaveInstanceState(Bundle outState)
{
if(webview.saveState(outState) == null)
Log.i(tag,"Saving state FAILED!");
else
Log.i(tag, "Saving state succeeded.");
}
J'espère que cela vous aidera.