У меня есть приложение с 2 операциями, LogonAct и MainAct. LogonAct является действием входа в систему, которое я хочу вынудить пользователя пройти каждый раз, когда они возвращаются к приложению. Я установил android:clearTaskOnLaunch = "верный" на LogonAct.
Когда я сначала запускаю приложение, я прохожу эту последовательность экранов,
Home -> LogonAct -> MainAct -> Home
Я тогда следую за этой последовательностью,
LogonAct -> Back -> MainAct
Почему это возвращает меня MainAct? Не был должен тот приют действия, закрытый, так как LogonAct имеет android:clearTaskOnLaunch = "верный". Я ожидал быть возвращенным для Размещения, когда я нажал Кнопку "Назад" от LogonAct.
Соответствующие отрывки из AndroidManifest.xml,
<activity android:name=".LogonAct" android:clearTaskOnLaunch="true"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name=".MainAct"> <meta-data android:name="android.app.default_searchable" android:value=".SearchResults" /> </activity>
Я использую 1.5.
Любая справка ценится.
Документы для Android: ClearTaskonlaunch
Укажите, что этот атрибут применяется «всякий раз, когда [действие] повторно запускается с домашнего экрана».
Однако в вашем случае вы нажимаете кнопку Home , чтобы вернуться на главный экран, а не нажав кнопку обратно . Это означает, что ваше приложение на самом деле не Relewared , потому что MINACT
не был «закончен». Это происходит только при нажатии обратно (или если Android убивает задачу для экономии ресурсов и т. Д.).
Поскольку у вас есть только две действия в вашем приложении, вы можете установить атрибут Android: NOHISTORY
на MINACT
, что гарантирует, что пользователи никогда не могут вернуться к нему и должны пройти через Логонакт
.
Кроме того, кажется, что он немного раздражает заставлять пользователей повторно войти каждый раз, когда они переходят в приложение (например, когда они получают телефонный звонок).
Вы можете сохранить токен сеанса с тайм-аутом в постоянном хранении вашего приложения, или удерживайте сетевое соединение, открытое, используя сервис, если это работает ваше приложение - но, конечно, это зависит от вас и вашим требованиям. :)