본문 바로가기
소소한 개발 꿀팁

[Android]안드로이드 프래그먼트 종료(finish) 시키기

by 지게요 2022. 3. 2.
728x90
반응형

개발하다가 프래그먼트 안에서 회원 탈퇴 구현 시 내가 원하는 구현 방식은 마이페이지 -> 회원 탈퇴 -> 로그인 페이지 -> Back키 -> 어플 종료 이런 식으로 구현을 하려고 했다. 하지만 Back를 눌렀을 때 전에 있던 프래그먼트가 종료가 안되어서 프래그먼트를 종료 시켜야 할 상황이 생긴다.

액티비티에서는 finish()를 해주면 되지만 프래그먼트에서는 그냥 finish()를 쓰면 안 된다.

 

# 해결 방법

class MypageFragment : Fragment() {
    private var mbinding: FragmentMypageBinding? = null
    private val binding get() = mbinding!!
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        // Inflate the layout for this fragment
        mbinding = FragmentMypageBinding.inflate(inflater,container,false)

        val login = Intent(activity,Login::class.java)
        binding.googleLogout.setOnClickListener {
            signOut()
            Toast.makeText(activity,"구글 로그아웃 성공", Toast.LENGTH_LONG).show()
            startActivity(login)
            activity?.finish()
        }

        return binding.root
    }

    /// 구글 로그아웃
    private fun signOut() {
        FirebaseAuth.getInstance().signOut()
    }

}

보면 finish()를 쓰는 건 액티비티와 똑같은데 앞에 activity를 붙여줘서 activity 가져온 후 finish()를 사용해준다. 그럼 내가 원래 하려던 구현이 잘 되는 것을 알 수가 있다.

반응형