想象一下,我有两个片段:
第一片段
SecondFragment
用户将在FirstFragment中提示一些数据,我想将这些数据共享给SecondFragment。我正在使用Android的ViewModel和Jetpack的Navigation。哪种数据传输方式最好?
视图模型
在viewModel的情况下,如果我像这样实例化viewModel:
MyViewModel viewModel = ViewModelProviders.of(getActivity()).get(MyViewModel.class);
在每个片段中,我可以创建一个名为
setSharedData
的方法并从FirstFragment调用它,并创建getSpecificData
的方法并根据需要在SecondFragment中调用它们。目标参数
如果使用Jetpack的导航,则可以使用destination arguments with safe-args共享数据,并在“片段”之间的操作中进行设置。
您认为最佳选择是什么?您是否认为这些是适合不同情况的不同解决方案?在那种情况下,我应该在哪种情况下使用哪种方法?
最佳答案
我认为,当您想多次使用共享数据时,视图模型方法很有用,但是如果您只需要使用共享数据进行初始化,则建议使用destination参数。因为将数据持久化在视图模型中不会占用内存,所以没有必要。