1、 问题
app里面目前主页面是一个activity,然后部分fragment是由NavHostFragment管理,当splash、login等页面也放在navigation时,按手机的返回键这些页面只能一页页回退,因为设置了
app:defaultNavHost="true"
并不能在某个页面例如splash、login按返回键时退出app,同时我们的项目又有部分fragment是由于继承 了RxFragment,不受NavHostFragment管理,精准判断了NavHostFragment管理的当前fragment之外,还不能包含继承RxFragment的fragment按下
返回键才能退出。
2 、分析
我们需要监听返回键,退出app,既要判断NavHostFragment管理fragment,同时也不能包含继承RxFragment的fragment.
3 、部分代码实现
我们精准的获取NavHostFragment的第一个fragment的javaClass值,然后在看是不是我们在想要的fragment里面做退出操作
@Suppress("UNCHECKED_CAST")
fun <F : Fragment> AppCompatActivity.getFragment(fragmentClass: