У меня есть приложение, которое имеет действия "входа" и "выхода". после входа пользователя в систему, в момент, когда они выходят из системы, может отсутствовать произвольное количество действий в стеке.
когда пользователь выходит из системы, я хочу, чтобы все состояние приложения было сброшено. я очищаю свои кэши и предпочтения на диске, но в действиях (приостановленных) все еще остается состояние. на самом деле, когда пользователь входит в систему снова, я обнаружил, что старые действия из предыдущего сеанса входа в систему все еще существуют со старым состоянием (я понимаю, почему это, конечно). как я могу заставить все приложение перезагружать/закрывать/перезапускать?
я видел несколько сообщений об использовании функции 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: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>