Android: Intent Flag, чтобы уничтожить активность и начать новый

Таким образом, у меня есть функция входа в систему. Эта активность раздувает макет login.xml, который имеет USER_NAME и PASSWORD EditText Views, когда я ввожу имя пользователя и пароль и нажимаю кнопку «Логин», я запускаю новое действие.

В новой операции есть кнопка «Выход», которая в основном запускает предыдущую операцию, например:

Intent loginIntent = new Intent(getActivity(), Login.class); loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); getActivity().startActivity(loginIntent); 

Согласно документации на Android, флаг выполняет следующие действия:

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

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

Проблема заключается в том, что имя пользователя и пароль по-прежнему отображаются в представлениях EditText после выхода из системы, есть ли флаг, который разрушает активность входа и просто запускает новый, или есть способ сбросить поля всякий раз, когда я выхожу из системы? Какой подход лучше?

Solutions Collecting From Web of "Android: Intent Flag, чтобы уничтожить активность и начать новый"

У вас есть 2 варианта:

1 – Убейте активность входа после успешного входа в систему

 Intent loginIntent = new Intent(getActivity(), Login.class); loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); getActivity().startActivity(loginIntent); finish(); 

2 – Очистить значения, затем начать новую активность

 edittext_username.setText(""); edittext_password.setText(""); 

Если вы поддерживаете только уровни API 11+, вы должны иметь возможность использовать FLAG_ACTIVITY_CLEAR_TASK . Это завершит все существующие действия во всех задачах и создаст новый экземпляр активности входа.