강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

사용자ACCOUNT님의 프로필 이미지
사용자ACCOUNT

작성한 질문수

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

안드로이드 앱 뒤로가기 버튼 이벤트

누르는 시점에 이미 isDouble이 true가 되어서 종료되어야하는거 아닌가요?

작성

·

339

0

override fun onBackPressed() {
Log.d("MainActivity", "backbutton")
if(isDouble == true) {
finish()
}
isDouble = true

취소버튼을 눌렀을 때, isDouble이 true면 종료된다고 써있는데

바로 밑에 isDouble이 true라고 써놓으면 누르는 순간 true가 되어서 바로 꺼져야하는 것이 아닌가요?

== true와 =true가 다른건가요?

답변 1

3

onBackPressed에서 위와 같은 경우는,

초기값이 false라고 생각해 보세요

 

그렇다면, 처음 Back키를 눌렀을때 onBackPressed가 실행되겠죠?

초기값은 false이니 if문은 실행되지 않고 

isDouble = true가 실행될 겁니다.

 

그 후에, 한번 더 Back키를 누르면,

isDouble은 true인 상태이니

finish()가 실행되어 종료될 것입니다.

 

== true와 =true가 다른건가요? 라는 질문에 관해서는

 

1. == 는 일치하는지를 나타내는 표현입니다

예를들어 x라는 변수가 있다고 합시다.

if ( x == 1) 과 같은 표현을 사용할때

만약 x가 1이라면 이라는 표현으로 == 를 사용합니다.

 

2. = 는 변수에 값을 지정해줄때 사용합니다

x라는 변수가 있다고 합시다.

x=2 라고 하면, x값에 2가 들어가게 됩니다.

 

결론 : == 와 =는 사용법 자체가 다릅니다.

==은 비교하는 두개의 대상이 같은지 판별할때 쓰이고

=는 특정 대상에 값을 넣어줄때 사용합니다.

 

 

답변 감사합니다! 이해가 되었어요.

초기값이 false인 상황에서 취소버튼을 눌렀을 때는 false였기 때문에 아직 꺼지지않은거고

다시  false로 바뀌기 전에 한 번 더 눌러서 true가 되면 그 때 꺼지는거네요. 감사합니다.

사용자ACCOUNT님의 프로필 이미지
사용자ACCOUNT

작성한 질문수

질문하기