Это мой сценарий: после посещения нескольких действий пользователь выходит из приложения и перенаправляется на страницу входа в систему. я хочу, чтобы пользователь нажал кнопку "Назад" на странице входа. я хочу, чтобы мое приложение вышло/закрыто, вместо этого назад к предыдущему действию
Любые идеи по этой проблеме? Спасибо.
Просто напишите этот код в методе OnClick OnClickListener вашей кнопки выхода.
Intent intent = new Intent(getApplicationContext(),Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Это работает для меня. Удачи.
... или вы можете проверить зарегистрированное состояние при запуске действия: если пользователь не зарегистрирован, возьмите его на экран входа в систему...
Запишите это в свой вид активности входа в систему.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
Я реализую это поведение следующим образом. Я создаю класс LogOut:
class LogOut {
void addOnLogoutListener(LogoutListener listener);
void removeOnLogoutListener(LogoutListener listener);
void logout();
}
Это глобальный класс. Когда пользователь хочет выйти из системы, он должен вызывать методы logout() - этот метод уведомляет каждого слушателя. В вашей деятельности добавьте слушателя, который завершает работу. Я всегда добавляю такой слушатель в классе BaseActivity, чтобы удалить дублирование кода. Также в классе App вы можете определить слушателя, который запускает LoginActivity или очищает важные ресурсы при выходе из системы.
Я использовал метод onResume для действий для проверки, если пользователь подключен:
@Override
protected void onResume() {
super.onResume();
ParseUser currentUser = ParseUser.getCurrentUser();
if (currentUser == null) {
finish();
}
}
Отменить кнопку возврата, чтобы действовать как кнопка дома
а затем просто вызовите this.finish();
переопределить onBackPressed, в котором вызывается android.os.Process.killProcess(android.os.Process.myPid())