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: