1

For Example: Я пересек четыре экрана в своем приложении, а файлы cookie хранятся в CookieManager. Теперь я нажимаю кнопку дома, и андроид убивает процесс. Поскольку процесс убит, экземпляр android CookieManager также убит (все файлы cookie удалены). Когда я возобновляю приложение, оно начинается с активности, которую я оставил, но теперь файлов cookie больше нет.Android-процесс убит - экземпляр CookieManager убит?

Possible solutions: (Considering Html(WebView) + android is used in app) 
  1. Необходимо поддерживать куки в хранилище сохраняемости. (Не полагаясь на Android CookieManager). Challenges:

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

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

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

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

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

+0

Нажатие кнопки «домой» обычно не убивает процесс! –

+0

обычно андроид не будет убивать процесс, когда мы нажимаем кнопку home.but. Когда андроид должен убить процесс, андроид дает низкий приоритет фоновному процессу по сравнению с процессом переднего плана. Это то, что я имею в виду. – sowmia

ответ

0

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

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

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

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

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

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

+1

CookieManager - предположительно http: // разработчик.android.com/reference/android/webkit/CookieManager.html –

+0

@ChrisStratton: Хорошая точка. В верхней части моей головы я не помню, сохраняет ли cookieManager несеансовый куки или нет. OP необходимо будет повторно загрузить содержимое в «WebView», так как старый «WebView» ушел со старым процессом, поэтому может быть, что OP нужно будет направлять пользователя к «входной двери», где файлы cookie. Лучше всего это обрабатывать с помощью флагов '' или только в приложении, возможно, немного зависит от самого приложения. – CommonsWare

+0

yes.it является android CookieManager. – sowmia

Смежные вопросы