Android-процесс убит - уничтожен ли экземпляр CookieManager?
Even though the android process is killed,the activity stack is maintained.
For Example:
Я пересек четыре экрана в моем приложении, и куки хранятся в CookieManager
, Теперь я нажимаю кнопку "Домой", и android убивает процесс. Так как процесс убит, экземпляр CookieManager android также убит (все сохраненные файлы cookie удалены). Когда я возвращаюсь к приложению, оно начинается с активности, которую я оставил, но куки больше нет.
Possible solutions: (Considering Html(WebView) + android is used in app)
Необходимо сохранить файлы cookie в постоянном хранилище (не полагаясь на Android CookieManager).
Challenges:
webview использует cookieManager для хранения своих cookie. нам нужно синхронизировать наши файлы cookie с файлами cookie WebView (файлы cookie хранятся в диспетчере файлов cookie).
Когда нужно удалить все сохраненные файлы cookie. У нас есть какой-либо специальный вызов Android для выхода из приложения?
Перезапустите приложение с запуска (откуда установлен cookie), если процесс остановлен.
Possibile Soln:
При создании нового процесса будет вызываться метод oncreate класса Android-приложения. В этот момент мы можем запустить приложение с момента запуска.Есть ли лучшее решение для этого?
Если мы реализуем собственный класс для поддержки cookie, какой смысл иметь Android CookieManager?
1 ответ
Я пересек четыре экрана в моем приложении, и cookie хранятся в Cookie Manager.
Я собираюсь предположить, что этот "Cookie Manager" является статическим членом данных.
Теперь я нажимаю кнопку домой. Теперь процесс убит. Затем сохраненные файлы cookie также будут удалены.
"Менеджер файлов cookie" исчезнет вместе со всеми другими объектами в памяти, когда процесс будет завершен.
Если это так, как мы можем поддерживать согласованность в приложении. Файлы cookie, которые когда-либо сохранялись, удаляются, так как процесс завершается, но приложение возобновляет работу после того, как мы оставили.
Сохраните куки в постоянном хранилище, таком как файл, база данных или SharedPreferences
, Или, если файлы cookie имеют небольшой совокупный размер, и это логично для вашего приложения, пусть они будут частью Bundle
который передается вам через onSaveInstanceState()
вашей деятельности и фрагментов.