728x90
반응형
어플을 만들다가 메인 페이지→ 마이페이지 → 회원 탈퇴→ 로그인 페이지→ Back키 → 어플 종료를 구현하려고 했다.
하지만 Back를 누르면 다시메인 페이지가 나오는 현상이 있었다. 곰곰이 생각해보니 마이페이지에서 회원 탈퇴를 할 때 finish()를 해줘도 마이페이지만 종료되고 메인 페이지는 남아있게 되는 것이었다. 그래서 특정 액티비티를 종료하는 방법을 찾았다.
정상 비정상

왼쪽이 구현하려던 알고리즘이고 오른쪽이 발생한 현상이었다.
# 해결방법
MainActivity.kt
Class MainActivity : AppCompatActivity(){
companion object{
// MainActivity 타입의 객체를 동반 객체로 선언한다(자바에서는 static)
var mainActivity : MainActivity? = null
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 위에서 선언한 mainActivity에 자기 자신을 담아둔다
mainActivity = this
}
}
MyPageActivity.kt
class Mypage : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.Mypage)
val loginSignup = Intent(this,login_signup::class.java)
// MainActivity에서 동반객체로 선언한 mainActivity를 받아온다
val mainActivity = MainActivity.mainActivity // MainActivity는 생략가능
google_logout.setOnClickListener {
signOut()
startActivity(loginSignup) // 로그인 페이지로 이동
mainActivity.finish() // 받아온 mainActivity를 통해 finish 시켜준다
finish() // MypageActivity 종료
}
}
/// 구글 로그아웃
private fun signOut() {
FirebaseAuth.getInstance().signOut()
}
}
반응형
'소소한 개발 꿀팁' 카테고리의 다른 글
안드로이드 스튜디오 로그캣(Logcat) 이전 버전으로 돌아가기(돌핀 이전) (0) | 2022.11.27 |
---|---|
[Android] getAdapterPosition() Deprecated 해결 방법 (0) | 2022.08.20 |
프래그먼트 안에서 Activity,context 가져오기 (0) | 2022.03.30 |
[Android]안드로이드 프래그먼트 종료(finish) 시키기 (0) | 2022.03.02 |
[Android]안드로이드 개발시 다크 모드 무시/해제 하기 (0) | 2022.03.01 |