[안드로이드] 뒤로 가기 두 번 누르면 종료되게 만들기

2022. 5. 11. 17:18·안드로이드
728x90
반응형

뒤로가기를 누르면 발생시킬 동작들은 onBackPress 메서드에 있습니다.

 

따라서 먼저 이를 override 시켜주겠습니다.

 

onCreate 메서드와 동일한 스코프에 정의해야함을 주의하세요.

 

package com.example.listview_ex

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        ...
    }

    override fun onBackPressed() {
        
    }
}

 

뒤로가기 버튼을 한 번 누르면 눌렀음을 표시할 변수 isClicked 를 만들어주겠습니다.

 

onBackPressed 메서드가 호출되었을 때 isClicked가 true라면 종료하고

 

isClicked가 false라면 isClicked를 true로 만들어준 다음 Toast 메시지를 표시하겠습니다.

 

만약 2초동안 다시 뒤로가기를 누르지 않는다면 isClicked를 false로 바꾸어주겠습니다.

 

package com.example.listview_ex

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.Toast

class MainActivity : AppCompatActivity() {
    private var isClicked = false

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
		...
    }

    override fun onBackPressed() {
        if (isClicked) {
            finish()
        }

        isClicked = true
        Toast.makeText(
            this,
            "종료하려면 뒤로가기를 한 번 더 누르세요",
            Toast.LENGTH_SHORT
        ).show()

        Handler(Looper.getMainLooper()).postDelayed(Runnable {
            isClicked = false
        }, 2000)
    }
}

 

'안드로이드' 카테고리의 다른 글

[안드로이드] ViewBinding 사용해보기  (0) 2022.05.24
[안드로이드] RecyclerView 사용 및 클릭 이벤트 넣어보기  (0) 2022.05.14
[안드로이드] ListView 구현하기  (0) 2022.05.11
[안드로이드] DataBinding 으로 TextView 업데이트 하기  (0) 2022.05.10
[안드로이드] 다음 화면으로 넘어가기 & 다음 화면에게 데이터 넘겨주기  (0) 2022.05.09
'안드로이드' 카테고리의 다른 글
  • [안드로이드] ViewBinding 사용해보기
  • [안드로이드] RecyclerView 사용 및 클릭 이벤트 넣어보기
  • [안드로이드] ListView 구현하기
  • [안드로이드] DataBinding 으로 TextView 업데이트 하기
uinone
uinone
노는 게 제일 좋아😉
  • uinone
    ideaDummy
    uinone
  • 전체
    오늘
    어제
    • 분류 전체보기
      • CS
        • 확률과 통계
        • 자료구조
        • 논리회로
        • OS
        • 데이터 통신
        • 데이터 과학
        • 컴파일러
      • 알고리즘
        • 그리디
      • 컴퓨터 비전
      • 안드로이드
      • Web
        • CSS
        • TypeScript
        • React.js
      • 기타
        • 모각코
        • 메모장
        • 오류해결
        • 풍미박산 기절초풍 설치과정
      • DL
      • ML
      • 언어
        • C
        • Ocaml
      • Tensorflow
      • 8기 글로벌 SW*AI인재 프로그램
      • 논문 정리
        • 3D Object Detection
        • 3D Multi Object Tracking
      • CUDA
      • Dataset
        • NuScenes
  • 블로그 메뉴

    • LinkedIn
    • Github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그리디 알고리즘
    NetworkFlow
    우선순위 큐
    백준
    정렬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
uinone
[안드로이드] 뒤로 가기 두 번 누르면 종료되게 만들기
상단으로

티스토리툴바