Как лучше всего определить, когда Android-приложение было запущено с главного экрана / экрана истории?
Вы не можете, AFAIK.
По сути, я пытаюсь добиться того, чтобы заставить пользователя входить в определенные экраны каждый раз, когда они возвращаются в приложение (то есть они имеют полный доступ ко всем действиям после входа в систему, но, по сути, я хочу, чтобы они повторно аутентифицироваться, когда они возвращаются в приложение через запуск на главном экране).
Пожалуйста, используйте разумную, удобную систему входа в систему. Например, если вы чувствуете, что их учетные данные устарели в зависимости от времени, то заставьте их снова войти в систему. Вы можете сделать это, проверив учетные данные в onCreate()
, и, если они устарели, позвоните по номеру startActivity()
, чтобы запустить свое действие по входу в систему (или открыть диалоговое окно входа в систему, или любой другой способ входа в них).
Конечно, еще лучший подход - полностью пропустить вход в систему. Если это не «безопасный пароль», банковское приложение или что-то еще, что требует безопасности выше среднего, вам не нужно, чтобы они входили в систему, и ваши пользователи будут раздражены, если они почувствуют, что ваши требования для входа в систему не нужны. Большинство мобильных приложений не требуют аутентификации.
Принудительный вход в систему в зависимости от того, как они достигли активности, является враждебным для пользователя. Вы говорите пользователям, которые соизволят использовать свои телефоны для других целей, кроме вашего приложения, что они граждане второго сорта.