AAC导航可以与Bundle
一起使用本机方式将参数从FragmentA
传递到FragmentB
。但是它不支持将结果从FragmentB
传递到FragmentA
。
在ViewModel overview SharedViewModel
中也用于将参数从一个片段传递到另一个片段。此ViewModel
附加到活动的生命周期。因此,在FragmentA
打开FragmentB
的情况下,FragmentB
创建SharedViewModel
并将数据传递到FragmentC
并打开它,然后该用户导航回到{{ 1}} FragmentA
仍然有效,即使不再使用它也是如此。据我所知,没有办法强制丢弃SharedViewModel
。
我看到的可接受的解决方案是对活动中的所有片段使用单个ViewModel
,该片段管理SharedViewModel
和arguments
,防止内部对象泄漏。
除了使用results
以外,还有其他方法可以将结果传回去吗?
总结还有一个问题。 AAC导航真的很好吗,我应该使用它并针对这种情况制定解决方法?也许里面还有其他问题。