C'è più di un approccio per affrontare questo problema.
La via facile è aggiungere android:configChanges="orientation|screenSize"
al relativo Activity
nel file manifest. Impostando questo flag, dici a Android di non distruggere lo Activity
e di gestire tutte le modifiche di orientamento (se presenti).
L'approccio più moderno sarebbe quello di mettere il WebView
all'interno di un Fragment
e farlo mantenere la sua istanza, utilizzando il flag setRetainInstance(true)
. L'hosting Activity
verrà comunque distrutto durante le modifiche di orientamento, ma lo Fragment
contenente lo WebView
verrà semplicemente rimosso e riattaccato, senza la necessità di ricreare se stesso. Puoi trovare an example di questa funzione nelle demo dell'API. Tieni presente che la libreria di supporto offre un'implementazione di frammenti compatibile con pre-Honeycomb, quindi non lasciarti ingannare dal livello API della classe "regolare" Fragment
.
fonte
2012-06-07 01:12:37
No, no, no. Si prega di consentire la configurazione di aggiornare quando dovrebbe. –
@NightlyNexus quali possono essere le implicazioni di ciò all'interno di una visualizzazione Web? –
@cgomezmendez Consenti sempre alle tue Views di ripristinare il loro stato. Sì, in questo caso, una WebView non ha lo stato da salvare e ripristinare, ma la WebView è l'unica parte dello stato di istanza della tua attività? Quasi certamente no. –