Переопределение onBackPressed()
-
21-12-2019 - |
Вопрос
Такова структура моего приложения:
Действие А - это ListViewActivity
с помощью кнопки для запуска действия B.
В действии B после заполнения формы есть кнопка для запуска действия C.
Действие C сохранит настройку и создаст новую запись для отображения в действии.Кнопка сохранить в действии C запускает действие A.
Если пользователь выполнит эту процедуру более одного раза, когда он нажмет кнопку "Назад" из действия A, вернитесь в действие B (без прохождения через C, потому что, когда я запускал его, я установил FLAG_ACTIVITY_NO_HISTORY
) и во второй раз, когда он нажимает back, снова возвращается к A, и это повторяется количество раз, равное количеству созданных записей.
Закрытие приложения с помощью кнопки "Назад" стало долгим процессом.
Я бы хотел, чтобы onBackPressed
из действия "А" всегда закрывайте приложение.
Английский - не мой язык, надеюсь, я выразился ясно.
Решение
Всегда начинайте свое занятие так, как показано ниже
Intent intent = new Intent(current_activity_context, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Другие советы
Метод finish() сделает это.Что-то вроде этого
Intent intent = new Intent(getApplicationContext(),
Activity B.class);
Activity A.this.startActivity(intent);
finish();
Вы должны переопределить метод onBackPressed
@Override
public void OnBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
super.onBackPressed();//Optional
}
Надеюсь, это поможет.
попробуй это
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}