WebView сбрасывается при запуске приложения из панели запуска - PullRequest
0 голосов
/ 25 июня 2019

Я загружаю веб-страницу в 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.

1 Ответ

1 голос
/ 25 июня 2019

Попробуйте добавить android:launchMode="singleTask" в AndroidManifest.xml

<activity android:name=".activity.MainActivity"
            android:launchMode="singleTask"
            />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...