У меня есть разные части сгенерированного HTML/JS, которые я загружаю в Activity с помощью WebView # loadDataWithBaseURL. Есть ли способ не загружать снова и снова во время жизненного цикла Activity? Например - пользователь переходит к проверке сообщения, а затем снова вызывает приложение. В этот момент активность прекращается и, вероятно, уничтожается, когда она снова загружается, я не хочу икоты при загрузке содержимого, которое пользователь уже просматривал.Сохранять данные в WebView (Android)
ответ
Например, пользователь переходит к сообщению , а затем снова вызывает приложение. В этот момент - Деятельность остановлена и, вероятно, уничтожили
Если пользователь непосредственно посетил Notification
или щелкнул HOME, ваша деятельность прекращается, но не разрушается. В этих случаях ваш WebView
не должен изменять контент, если вы его не измените.
Ваша деятельность будет уничтожена, если пользователь нажмет BACK, или Android должен закрыть вас из-за ограничений памяти.
В случае с BACK пользователь прямо говорит вам уйти, поэтому перезагрузка ваших данных представляется разумной.
В способе ограничения памяти по определению устройство не хватает памяти, поэтому вам потребуется перезагрузить данные, если и когда вы вернетесь на передний план.
Когда я нажимаю HOME, а позже я перезапускаю приложение, содержимое WebView сохраняется. Но когда я запускаю намерение (например, сканер штрих-кода), после того, как намерение закончено и вернется в мое приложение, WebView в моем приложении перезагрузился.
Могу ли я сохранить свой контент WebView при возврате намерения?
Я просто хочу отметить, что я всегда получаю вызов CreateCreate, когда приложение восстанавливается после нажатия кнопки «Home». Это очень опасно, что WebView не поддерживает историю для HTML, загружаемую с помощью вызовов данных. – Bostone
Что касается вашего onCreate(), то на вашем телефоне происходит утечка памяти, например, сита, или вы явно вызываете финиш() в своем onPause()/onStop(), или что-то еще, что приводит к уничтожению вашей активности (или процесса), а затем перезапуска. Или, возможно, у вас есть флаги, установленные в манифесте, чтобы каждый раз запускать новые задачи. – CommonsWare