Разъяснить как работает метод по выходу из приложения

Не хочется просто реализовать лишь бы реализовать, хочу разобраться.

private static long back_pressed;

@Override
public void onBackPressed() {
    if (back_pressed + 2000 > System.currentTimeMillis()) {
        super.onBackPressed();
    } else {
        Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();
    }
    back_pressed = System.currentTimeMillis();
}

Ответы (1 шт):

Автор решения: Alex_Skvortsov

По шагам:

@Override
public void onBackPressed()

Будет вызван системой, когда пользователь нажмёт назад.

if (back_pressed + 2000 > System.currentTimeMillis()) {

Здесь back_pressed - сохраненное время предыдущего нажатия кнопки назад (в миллисекундах). System.currentTimeMillis() - метод получения текущего времени в миллисекундах.

if (back_pressed + 2000 > System.currentTimeMillis()) {
    super.onBackPressed();
}

То есть это означает "если с предыдущего нажатия кнопки назад прошло меньше 2-ух секунд, тогда выйти".

else {
    Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();
}

Если прошло больше 2-ух секунд с предыдущего нажатия, то напоминаем пользователю, что для выхода нужно нажать дважды.

back_pressed = System.currentTimeMillis();

Ну и обновляем время последнего нажатия.

→ Ссылка