Ho un tabhost con 3 schede. In ognuna di queste schede c'è una visione web. Quando faccio clic su una scheda, la visualizzazione Web deve "ricaricare" anche se ci sono già stato, non è stata salvata. C'è un modo per salvare la visualizzazione Web?WebView Android saveState
risposta
Questo può essere gestito da overrwriting onSaveInstanceState (Bundle Outstate) nella vostra attività e chiamando saveState dalla WebView:
@Override
protected void onSaveInstanceState(Bundle outState) {
webView.saveState(outState);
}
poi recuperare questo nella vostra onCreate dopo la WebView è stato ri-gonfiato naturalmente:
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
WebView webview = (WebView)findViewById(R.id.webview);
if (savedInstanceState != null)
webview.restoreState(savedInstanceState);
else
webview.loadUrl(URLData)
}
è possibile fare riferimento questo LINK
in alternativa si può considerare di usare frammenti con la tabHost. quando si entra in un'altra WebView è possibile impostare il frammento da nascondere e l'altro da mostrare. quando ritorni al frammento precedente il contenuto non sarà stato distrutto. Ecco come ho fatto e ha funzionato per me.
Scusa, so che la tua risposta è per molto tempo fa, ma penso che potresti aiutarmi a salvare lo stato della mia webView. Ecco la mia domanda: http://stackoverflow.com/questions/26142255/retrieve-an-activity-after-time-out-warning-notification – Hamid
Questo non è garantito. I frammenti possono essere distrutti se vengono fermati. – William
restoreState non è mai stato affidabile. E vieni 2015 i documenti accettano il fatto. (Il cambiamento è stato probabilmente apportato ai documenti intorno al 2014). Questo è quello che dice ora.
Se è chiamato dopo questo WebView ha avuto la possibilità di costruire statali (pagine di carico, creare un back/forward lista, ecc) ci possono essere effetti collaterali indesiderati. Si noti che questo metodo non è più ripristina i dati di visualizzazione per questo WebView.
E la voce corrispondente per saveState() parla così:
Si prega di notare che questo metodo non memorizza i dati di visualizzazione per questo WebView.
Cosa si dovrebbe fare all'interno del metodo onCreate è chiamare webView.loadUrl() se si desidera visualizzare l'ultimo URL visitato, consulta questo answer:
Se siete preoccupati per la WebView ricaricando sul cambiamento di orientamento ecc
è possibile impostare l'attività per gestire l'orientamento e cambiamenti keyboardHidden, e poi basta lasciare il WebView sola
Il collegamento è rotto. –