在Android SDK中,popBackStackImmediate()和popBackStack()都与FragmentManager一起使用,以从后堆栈中弹出片段(简单地说,就是删除片段)。
-
popBackStackImmediate():
此方法会立即从后堆栈弹出顶部状态
将控制权带回活动。如果没有可弹出的条目
返回false。这是一个
同步的
可以阻止UI的操作
线程(如果事务繁重)。
val fragmentManager = requireActivity().supportFragmentManager
val isPopped = fragmentManager.popBackStackImmediate()
-
popBackStack():
此方法安排顶部状态的弹出操作发生在
UI线程准备就绪。这是一个
异步的
操作
通常在不想阻塞UI线程时使用更安全。
val fragmentManager = requireActivity().supportFragmentManager
fragmentManager.popBackStack()
所以,如果您想立即销毁碎片,并且可以处理潜在的阻塞,请使用popBackStackImmediate()。如果您想在不阻塞UI线程的情况下安排pop操作异步进行,请使用popBackStack()。