Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Yêu cầu bấm Back 2 lần để thoát Activity trong Android

Mục tiêu

Ngăn thoát ứng dụng nhầm khi bấm Back một lần. Yêu cầu bấm 2 lần trong 2 giây.

Cách làm: Override onBackPressed()

Bước 1: Tạo project

Bước 2: Layout activity_main.xml

<LinearLayout ... android:gravity="center" android:background="#33FFFF00" android:orientation="vertical">
    <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>

Bước 3: MainActivity.java

public class MainActivity extends AppCompatActivity {
    private static final int TIME_INTERVAL = 2000; // 2 giây
    private long backPressedTime;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onBackPressed() {
        if (backPressedTime + TIME_INTERVAL > System.currentTimeMillis()) {
            // Bấm lần 2 trong 2 giây -> thoát thật
            super.onBackPressed();
            return;
        } else {
            // Bấm lần 1 -> hiện toast nhắc
            Toast.makeText(this, "Click two times to close", Toast.LENGTH_SHORT).show();
        }
        backPressedTime = System.currentTimeMillis();
    }
}

Logic:

  • Lưu thời điểm bấm Back lần trước (backPressedTime).
  • Nếu lần này - lần trước < 2000ms → gọi super.onBackPressed() (thoát).
  • Ngược lại → show Toast nhắc, cập nhật backPressedTime.

Kết quả

Bấm Back lần 1 → Toast "Click two times to close":

Yêu cầu bấm Back 2 lần để thoát Activity trong Android

Bấm Back lần 2 trong 2 giây → App thoát.

Mở rộng

  • Dùng Snackbar thay Toast để đẹp hơn.
  • Fragment: Xử lý trong OnBackPressedCallback (Activity 1.0+).
  • DoubleBackPressHelper library.