ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 11.[Android] 뒤로가기 버튼 2번 클릭으로 앱 종료하기
    Android 2019. 8. 18. 18:16
    반응형

    원래는 Back버튼(뒤로 가기 버튼)을 클릭하면 이전 화면으로 돌아가거나, 앱이 종료가 됩니다.

    최근에는 뒤로 가기 버튼 2번 클릭으로 앱을 종료하는 방법을 많이 사용하는 편입니다.

    private val time = mutableListOf<Long>()
    
    class BackActivity : AppCompatActivity() {
    
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.clichlistener_study1)
        }
    
        override fun onBackPressed() {
            time.add(System.currentTimeMillis())
            Toast.makeText(this, "뒤로가기를 한번 더 누르시면 종료됩니다.", Toast.LENGTH_LONG).show()
    
            if (time.size >= 2) {
                if (time[1] - time[0] <= 2000) {
                    super.onBackPressed()
                }
                time.clear()
            }
    
        }
    

    onBackPressed()는 뒤로 가기 버튼을 담당하는 메서드입니다.

    메서드 안에 super.onBackPressed()를 주석 처리하면 뒤로 가기 버튼이 막히는 것을 볼 수 있을 것입니다.

    위에 코드는 뒤로 가기 버튼을 한번 누르면 Toast로 한번 더 누르면 종료된다는 메시지를 보여주고 2초 안에 한번 더 버튼을 누르면 종료되게 만들었습니다. System.currentTimeMillis()는 현재시간을 밀리 초로 나타낸 것이니 참고하도록 합니다.

     private var backPressTime = 0L
    
    class BackActivity : AppCompatActivity() {
    
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.clichlistener_study1)
        }
        override fun onBackPressed() {
            val time = System.currentTimeMillis()
            if (time - backPressTime > 2000L) {
                Toast.makeText(this, "뒤로가기를 한번더 누르시면 앱이 종료 됩니다.", Toast.LENGTH_LONG).show()
                backPressTime = time
            } else {
                super.onBackPressed()
            }
        }
       }
    

    이해하기 쉽게 두 가지 코드로 같은 기능을 만들어 보았습니다.

     

     

    반응형

    댓글

Designed by Tistory.