#android #android-jetpack-navigation
Вопрос:
Пожалуйста, сначала поймите -> в моем приложении у меня есть вложенные nav_graphs сказать ( A
, B
, C
) и других вложенных nav_graph сказать («Д») D
может быть запущен с любого из A
, B
, C
, все из них имеют модели ViewModel области , например ( vmA
, vmB
, vmC
) все эти модели ViewModel дети baseVM
которых есть собственность p
.
С nav_graph D
может быть запущен из A
, B
, C
поэтому я знаю, что в D
есть модель представления живы, которая связана с nav_graph ( A
или B
или C
) кто бы ни начал D
и я также знаю, что модель представления имеет свойство p
поскольку все vm
дети basevm
, но я не знаю, кто завел D
так, я не могу сделать экземпляр viewmodel
и установить p
, потому что я не знаю, кто начал D
, но я знаю, что тот, кто начал это не отскочила в backstack так это ВМ жив
Как мне получить ссылку на viewmodel, которая запущена D
и установлена p
?
и я не хочу if
регистрироваться, D
так как он закрыт для модификации, а также я не хочу делиться данными с помощью виртуальной машины с областью действия, потому что это может привести к ошибкам в моем случае использования и будет потреблять память на протяжении всего срока службы приложения.
В моем случае использования он хочет рассказать A
B
, или C
о том , что я сделал D
, это попытка
setFragmentResult
api, но я получаю результат после задержки , более поздний код выполняется до того , как я проверю результат и изменю поток , я предполагаю, что это асинхронно, я хочу, чтобы результат был синхронным.
также пробовал getBackStackEntry()
api, но не смог четко понять это из документации.