【发布时间】:2021-05-02 01:53:58
【问题描述】:
鉴于 Activity 不是父 Activity,我正在尝试实现 Fragment 到 Activity 的通信。
所以,我有一个MainActivity,其中有一个名为ContactListFragment 的片段,当单击MainActivity 的BottomNavigationView 上的添加按钮时,我正在打开另一个AddContactActivity 以添加联系人。我的要求是当我单击AddContactActivity 上的保存按钮时,我需要在ContactListFragment 中启动与服务器的数据同步。我认为最好的方法是为此使用共享视图模型,但在这种情况下,我应该如何创建视图模型以便生命周期所有者不会被更改?
我曾考虑使用Application Context 作为所有者,但我觉得这样的任务有点过头了,当其他模块添加到项目中时可能会产生一些后果。
那么有没有办法有效地实施这种方法?谢谢。
【问题讨论】:
-
使用接口怎么样?
-
你建议如何实现它?由于打开了不同的活动,我如何确保
MainActivity在调用接口实现之前仍在后台? -
“我的要求是当我点击 AddContactActivity 上的保存按钮时,我需要在 ContactListFragment 中启动与服务器的数据同步。”。只需从列表片段中执行
startActivityForResult。当您从添加屏幕返回时,在 Intent 中发送一些数据并在列表片段中的 onActivityResult 中开始同步 -
好吧,我的意思是,这是 imo 的最后一个选项。不过,我希望有一个更好的解决方案,这样我就可以以模块化的方式处理这个问题,并且尽可能减少耦合。谢谢。
标签: android android-fragments android-activity android-lifecycle android-viewmodel