-
Notifications
You must be signed in to change notification settings - Fork 784
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2019-03-11: Activity 与 Fragment 之间常见的几种通信方式? #2
Comments
1.接口方式 |
楼上的正解,就是楼主你面试的时候真有人这样问吗 |
偏好设置文件,数据库,ContentProvider,RxJava订阅是不是也可以? |
这个问题不太科学,一般也不会这样问,说到底就是两个普通的JAVA对象相互都持有对方的引用,直接回调就成,哪还需要什么别的通信方式,很简单的问题别搞复杂了 |
①采用Bundle的方式 |
引出另外一个问题:大家是怎么处理activity会fragment重建后数据恢复问题的?线上这个问题必现。不会都是老老实实去一个一个恢复数据的吧? |
viewModel 做数据管理,activity 和 fragment 公用同个viewModel 实现数据传递 |
确确实实有遇到这样问的公司 Activity 与 Fragment Fragment 与 Fragment之间通信 但这确实不是一个好的问题 |
1 互相持有对方的引用 直接调用 |
1。我也觉得,直接可以拿到 activity 的,activty也可以拿到 fragment, |
最优方式,官方组件ViewModel。 |
官方组件ViewModel如何实现数据恢复,原理是什么? |
Fragment 中的 setTargetFragment 相关的方法,让 Fragment 间耦合性太高,不太建议使用。另外还可以延伸一些面试题:
|
就是一个一个去恢复的 |
ViewModel 只能在 config 变化引起重建的时候恢复,在 内存不够等情况下 被销毁的时候并不能 恢复, |
1、对于Activity和Fragment之间的相互调用 |
使用Navigation组件,activity传参启动fragment |
内存不够的ondestory这种情况会执行onClear() clear掉, 配置变化得ondestory不会的 |
被问到过 |
1,通过Bundle setArguments getArguments |
现在官方只推荐两种方式:ViewModel 和 Fragment Result API |
No description provided.
The text was updated successfully, but these errors were encountered: