Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Надо ли явно закрывать приложение?

Все мы знаем жизненный цикл Activity, основного кирпичика, из которого состоит Android приложение (по крайней мере обладающее UI).
Также мы знаем, что Activity может уничтожаться самой осью в зависимости от нагрузки/наличия памяти и проч. обстоятельств.
Бывают такие приложения (например приложения онлайн банкинга), которые требуют авторизации/входа, в этом случае, по аналогии с обычными десктоп приложениями напрашивается опция/кнопка/экшн - Выход/Exit/Quit, нажатие на которое приводит к гарантированному закрытию приложения. Например, такой паттерн используется в широко известном мобильном приложении "Сбербанк Онлайн".
Другое чуть менее известное мобильное приложение от банка "Тинькофф", не использует такой шаблон (вернее таки там можно выйти из приложения таким способом, но это запрятано довольно глубоко), выход из приложения, в этом случае производится через системную кнопку back/назад - при достижении дна стека последних Activity - приложение само прекращает работу.
Внимание, вопрос: является ли использование специализированного действия выход/exit для Android приложений нормальным или это антипаттерн?


Ответ

Кроме объектов Activity, есть еще объект Application, который по задумке авторов ОС в идеале должен жить вечно для приложения, единожды запущенного пользователем. И нет никакого "легального" программного способа уничтожить этот объект. Так что такого понятия "Выйти", как мы привыкли на компьютерах, нет вообще.
Что касается приложений для онлайн-банкинга и других, работающих с закрытыми данными, тут должно быть четкое и ясное для пользователя разграничение на зоны (открытая\защищенная) и явный переход между ними.
Вход в защищенную зону с помощью ПИНа или логина-пароля, соответственно выход из нее по подтверждению (закончить? да-нет, либо явная команда "Выйти").
Само приложение может оставаться в памяти и даже на экране, главное чтобы все токены были удалены\отозваны, сессии закрыты и т.п. Это достаточный уровень безопасности для стандартного пользователя.
Если же ваши пользователи настолько параноидальны либо требовательны, что мол в памяти что-то осталось и т.п., то тут они ошиблись системой. Виртуальная машина не предоставляет настолько высокий уровень безопасности. И заморачиваться этим в приложении нет никакого смысла.

Комментариев нет:

Отправить комментарий