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)
  1. Необходимо сохранить файлы cookie в постоянном хранилище (не полагаясь на Android CookieManager). Challenges:

    webview использует cookieManager для хранения своих cookie. нам нужно синхронизировать наши файлы cookie с файлами cookie WebView (файлы cookie хранятся в диспетчере файлов cookie).

    Когда нужно удалить все сохраненные файлы cookie. У нас есть какой-либо специальный вызов Android для выхода из приложения?

  2. Перезапустите приложение с запуска (откуда установлен cookie), если процесс остановлен. Possibile Soln: При создании нового процесса будет вызываться метод oncreate класса Android-приложения. В этот момент мы можем запустить приложение с момента запуска.

    Есть ли лучшее решение для этого?

Если мы реализуем собственный класс для поддержки cookie, какой смысл иметь Android CookieManager?

1 ответ

Я пересек четыре экрана в моем приложении, и cookie хранятся в Cookie Manager.

Я собираюсь предположить, что этот "Cookie Manager" является статическим членом данных.

Теперь я нажимаю кнопку домой. Теперь процесс убит. Затем сохраненные файлы cookie также будут удалены.

"Менеджер файлов cookie" исчезнет вместе со всеми другими объектами в памяти, когда процесс будет завершен.

Если это так, как мы можем поддерживать согласованность в приложении. Файлы cookie, которые когда-либо сохранялись, удаляются, так как процесс завершается, но приложение возобновляет работу после того, как мы оставили.

Сохраните куки в постоянном хранилище, таком как файл, база данных или SharedPreferences, Или, если файлы cookie имеют небольшой совокупный размер, и это логично для вашего приложения, пусть они будут частью Bundle который передается вам через onSaveInstanceState() вашей деятельности и фрагментов.

Другие вопросы по тегам