我有一个由NavgitaionComponents bottomNavigationView管理的配置文件片段,问题是我要从此处注销用户,我可以这样做
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
Glide.with(requireContext()).load(FirebaseAuth.getInstance().currentUser?.photoUrl).centerCrop().placeholder(GlideProgress.setupCircularProgress(requireContext())).into(profile_photo)
txt_profile_name.text = FirebaseAuth.getInstance().currentUser!!.displayName
txt_email.text = FirebaseAuth.getInstance().currentUser!!.email
btn_signout.setOnClickListener {
showSignOutProgress()
AuthUI.getInstance().signOut(requireContext()).addOnSuccessListener {
FirebaseAuth.getInstance().signOut()
startActivity(Intent(requireContext(),MainActivity::class.java))
findNavController().popBackStack()
}.addOnFailureListener {
hideSignOutProgress()
}
}
}
我的MainActivity会处理要浏览的导航图,具体取决于用户是否登录,如果登录,它将进入main_navigation图,如果未登录,则将进入
现在,当我成功注销后开始维护时,当我执行findNacController()。popBackStack()时,我希望当前配置文件片段会弹出并弹出所有后退堆栈片段,所以在我返回的登录片段中,我无法返回我的个人资料片段
但是这发生了
无法暂停活动FragmentManager已在执行 交易
答案 0 :(得分:0)
解决了这个问题,我需要完成包含主导航的整个活动,而不仅仅是弹出配置文件片段
已添加
requireActivity().finish()
代替
findNavController().popBackStack()