Подтвердить что ты не робот

Где сохранен пакет onSaveInstanceState?

Я хотел бы знать, где хранится пакет "outState" метода onSaveInstanceState (Bundle outState).

Сохраняется ли она в памяти или в памяти устройства?

Меня беспокоит безопасность данных, которые хранятся в комплекте.

4b9b3361

Ответ 1

Я не думаю, что какой-либо вредоносный фоновый процесс может получить данные пакета вашего приложения. Не описано, как Android обрабатывает данные Bundle. Это может быть или не быть записано на диск в том случае, если ваше приложение будет очищено, в то время как указано. Однако, учитывая, что мы не знаем, сохранены ли эти данные на диске, и если это так, учитывая, что мы не знаем, где и почти наверняка не имеют доступа на чтение к этой части диска, я бы Не беспокойтесь о том, что какой-то сторонний процесс сможет восстановить эти данные.

Следовательно, я не понимаю, что вы думаете об экспозиции. Хотя я могу что-то упустить. Тем не менее, в ответ на ваш вопрос, это абсолютно в памяти, пока ваше приложение живое, и если ваше приложение связано с ним, оно может быть или не быть написано где-то скрытым, но мы не знаем, потому что Google не сказал нам.

Он уничтожается вместе с приложением, когда память собирается.

Ответ 2

Чтобы хранить данные только для времени жизни приложения (то есть временно), используйте событие активности onSaveInstanceState (Bundle)

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

Объяснение:, если данные хранятся здесь активностью A, тогда приложение показывает другое действие или поворачивает экран (следовательно, закрывает A), а затем возвращается к A, данные могут быть извлечены для заполнения элементов управления, Однако, если приложение закрыто и открыто снова, данные исчезнут, а элементы управления вернутся к значениям по умолчанию.

Пример использования: сохранение текста, введенного пользователем, и выбор, составляющий заказ, запись в блоге, сообщение и т.д.

Примечание:

Важно заметить, что только активность уничтожена и воссоздана, а не все ваше приложение! Приложение Android может состоять из многих видов деятельности, служб и контент-провайдеров! Если приложение закрыто (например, нажав кнопку "Назад", то все значения будут удалены. SavedInstaceState только там, чтобы сохранить данные временными, когда активность уничтожена/воссоздана, а не само приложение.

Если вы хотите сохранить данные навсегда, вам необходимо сохранить их либо в виде настроек, либо в ContentProvider/database.

Ответ 3

Моя догадка будет в памяти, но лучший способ защитить ваши данные - не доверять системе и шифровать ее. Никогда не доверяйте клиенту (в данном случае клиентом является ОС).

EDIT:

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

Но в конечном итоге вы должны хранить как можно меньше конфиденциальных данных на клиенте. По этой же причине сайт электронной коммерции будет показывать только последние 4 цифры кредитной карты.