Mam tabhost z 3 zakładkami. Na każdej z tych kart znajduje się przeglądarka internetowa. Kiedy klikam kartę, przeglądarka musi "przeładować", nawet gdy byłem tam wcześniej, ale nie została zapisana. Czy istnieje sposób na zapisanie widoku internetowego?Android webView saveState
Odpowiedz
To mogą być obsługiwane przez overrwriting onSaveInstanceState (Bundle outState) w swojej działalności i nazywając SaveState z WebView:
@Override
protected void onSaveInstanceState(Bundle outState) {
webView.saveState(outState);
}
Następnie odzyskać to w onCreate po WebView został ponownie nadmuchany przedmiotu:
@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)
}
można odnieść to LINK
Alternatywnie można przyglądać się przy użyciu fragmentów z tabHost. podczas wchodzenia do innego webView możesz ustawić fragment do ukrycia, a drugi do wyświetlenia. po powrocie do poprzedniego fragmentu zawartość nie zostanie zniszczona. Tak to zrobiłem i to zadziałało.
Przepraszam, wiem, że twoja odpowiedź jest od dawna, ale myślę, że możesz mi pomóc zapisać stan mojego webView. Oto moje pytanie: http://stackoverflow.com/questions/26142255/retrieve-an-activity-after-time-out-warning-notification – Hamid
Nie jest to gwarantowane. Fragmenty mogą zostać zniszczone, jeśli zostaną zatrzymane. – William
restoreState nigdy nie był niezawodny. A w 2015 roku dokumenty potwierdzają ten fakt. (Prawdopodobnie zmiana dotyczyła dokumentów około 2014 r.). To właśnie teraz mówi.
Jeśli to się nazywa po tym WebView miał szansę zbudować państwowych (strony obciążenia, należy utworzyć listę do przodu/do tyłu, itd.) Nie mogą być niepożądane skutki uboczne. Należy pamiętać, że ta metoda nie powoduje już odtworzenia danych wyświetlania dla tego WebView.
i odpowiadający wpis na SaveState() mówi tak:
Należy pamiętać, że ta metoda nie przechowuje danych wyświetlanych na to WebView.
Co naprawdę powinien zrobić wewnątrz metody onCreate jest wywołanie webView.loadUrl() Jeśli chcesz wyświetlić ostatnio odwiedził URL, proszę zobaczyć answer:
Jeśli jesteś zaniepokojony WebView przeładunku na zmianę orientacji itp
można ustawić aktywny obsłużyć orientację i zmiany keyboardHidden, a potem po prostu opuścić WebView sam
Link jest uszkodzony. –