Я загружаю веб-страницу в WebView. Состояние страницы изменяется с помощью JavaScript. Если я помещу приложение в фоновый режим, а затем вернусь к нему с помощью переключателя задач, состояние веб-страницы будет сохранено. Если я отправляю его в фоновый режим, а затем открываю из панели запуска, веб-страница сбрасывается.
Что я могу сделать, чтобы сохранить его состояние при запуске из модуля запуска?
class MainActivity : Activity() {
private var webView: WebView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)
webView?.webViewClient = OzvenaWebViewClient(this)
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true)
webView?.settings?.javaScriptEnabled = true
if (savedInstanceState != null)
webView?.restoreState(savedInstanceState)
else
webView?.loadUrl("https://markonius.gitlab.io/ozvena/ozvena.html")
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
webView?.saveState(outState)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
webView?.restoreState(savedInstanceState)
}
override fun onBackPressed() {
moveTaskToBack(true)
}
}
РЕДАКТИРОВАТЬ: я переопределил неправильный onSaveInstanceState
, я исправил это сейчас. Одна проблема, которую я сейчас вижу, состоит в том, что savedInstanceState
в onCreate
всегда null
, даже после вызова onSaveInstanceState
.