Android «закрыть» активность

1

У меня есть приложение, которое имеет действия "входа" и "выхода". после входа пользователя в систему, в момент, когда они выходят из системы, может отсутствовать произвольное количество действий в стеке.

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

я видел несколько сообщений об использовании функции startActivityForResult(), onActivityResult() чтобы onActivityResult() код результата "выхода", заставляя каждое действие закрываться по очереди. это выглядит больно, и я надеюсь, что там лучший способ.

EDIT: я пробовал начать "вход в систему" с различными флагами безрезультатно,

loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
Теги:
android-activity

1 ответ

1

в вашем манифесте вы можете поместить следующий атрибут в свою деятельность:

android:clearTaskOnLaunch="true"

так что у вас будет что-то вроде:

<activity android:name=".ui.Activity" android:clearTaskOnLaunch="true" android:theme="@style/MyTheme">
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
  • 0
    это работает только тогда, когда активность запускается с домашнего экрана. в моем случае, когда пользователь выбирает «выйти из системы», я хочу вернуться к первоначальной активности «войти в систему».
  • 1
    хорошо учитывая флаги, которые вы пробовали, и те, которые должны работать. Но тогда у меня остался вопрос, вы пробуете это на реальном устройстве или эмуляторе?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню