Наблюдайте за жизненным циклом JetPack Compose Navigator, чтобы получить текущее имя экранаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Наблюдайте за жизненным циклом JetPack Compose Navigator, чтобы получить текущее имя экрана

Сообщение Anonymous »

Поскольку фрагменты не используются в навигации JetPack, я хочу наблюдать за жизненным циклом JetPack Navigator, чтобы получить текущее имя назначения или экрана. Как вы знаете, JetPack Navigation не использует фрагменты, скорее, она использует глубокую структуру связывания. Я много искал, но не смог найти какого -либо подходящего решения.

Код: Выделить всё

    class AppLifeCycleObserver : Application.ActivityLifecycleCallbacks {

var route: String? = ""

override fun onActivityCreated(p0: Activity, p1: Bundle?) {
log("onActivityCreated")
}

val TAG = "AppLifeCycleObserver"

fun log(message: String) {
Log.e(TAG, message)
}

override fun onActivityStarted(p0: Activity) {
log("onActivityStarted")

if (p0 is FragmentActivity) {
p0.supportFragmentManager.registerFragmentLifecycleCallbacks(object :
FragmentManager.FragmentLifecycleCallbacks() {

override fun onFragmentCreated(
fm: FragmentManager,
f: Fragment,
savedInstanceState: Bundle?
) {
super.onFragmentCreated(fm, f, savedInstanceState)
log("onFragmentCreated")
}

override fun onFragmentDestroyed(fm: FragmentManager, f: Fragment) {
super.onFragmentDestroyed(fm, f)
log("onFragmentDestroyed")
}

}, true)
} else if (p0 is ComponentActivity) {
(p0 as MasterActivity).navController_field.currentBackStackEntry.destination.route
log("ComponentActivity")
}

}

override fun onActivityResumed(p0: Activity) {
log("onActivityResumed")
}

override fun onActivityPaused(p0: Activity) {
log("onActivityPaused")
}

override fun onActivityStopped(p0: Activity) {
log("onActivityStopped")
}

override fun onActivitySaveInstanceState(p0: Activity, p1: Bundle) {

}

override fun onActivityDestroyed(p0: Activity) {
log("onActivityDestroyed")
}

}
< /code>
Я не могу получить доступ к < /p>
      (p0 as MasterActivity).navController_field.currentBackStackEntry.destination.route
Потому что это недоступно, я нахожу это через отладку

Подробнее здесь: https://stackoverflow.com/questions/735 ... creen-name
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»