안드로이드 앱 만들기

뒤로가기 두번 눌러 앱 종료

khon98 2020. 8. 29. 13:09

MainActivity.java

package com.example.backbutton;

import android.os.Bundle;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    /* back 버튼을 눌렀을때 타임을 0으로 설정
    long은 int보다 자료 데이터가 더 긴 형태 */
    private long backBtnTime = 0;

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

    /* super.onBackPressed를 타게 되면 실제로 back 버튼을 눌렀을때 super.onBackPressed에 의해서
    뒤로가기 활성화가 됨 */
    @Override
    public void onBackPressed() {
        long cutTime = System.currentTimeMillis();
        long gapTime = cutTime - backBtnTime; // 현재 시간을 가져와서 back 버튼을 누른 시간을 빼줌

        // 0이 gatTime보다 작거나 같고 gapTime이 2000(mil)보다 작거나 같을때
        if (0 <= gapTime && 2000 >= gapTime) {
            super.onBackPressed();
        }
        // 만약 저 경우의 수가 아니라면 backbBtnTime은 현재시간으로 됨
        else {
            backBtnTime = cutTime;
            Toast.makeText(this, "한번 더 누르면 종료 됩니다.", Toast.LENGTH_SHORT).show();
        }
    }
}