实际项目中Activity传递数据最佳实践是?

发布于 2022-09-04 18:26:05 字数 230 浏览 13 评论 0

有个代码优化的问题,假设现在项目有4个Activity依次跳转:A》B》C》D

  1. 有一些公共数据 B,C,D都需要,是用Intent依次传递,还是直接写成public static,或者更好的方法?

  2. 现在D界面进行了一些操作,希望返回到A时(注意:不是D直接跳到A,而是D,C,B回退到A)刷新界面。除了用标志位,更优的方法是?

来,畅所欲言吧

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

违心° 2022-09-11 18:26:05

使用事件总线的库啊,推荐使用Eventbus
好处:

  1. 传递的数据序列化就不需要了

  2. 使用观察者模式,解耦合

帅气尐潴 2022-09-11 18:26:05

1.如果是常量的话,可以写个Constant类专门存放。
2.可以通过startActivityForResult依次打开activity,返回的时候可以在onActivity根据Intent中的数据以及requestCode,resultCode进行判断和传递,但是代码肯定是不够清爽的。

冷︶言冷语的世界 2022-09-11 18:26:05

需求并不是特别清晰. 场景很像登录注册的情景: 点击登录页面, 忘记密码, 然后执行完操作, 直接返回完成登录.

  1. 如果BC在返回时没有任何交互要求, 并且对A也没有特别要求, 那就直接把launchMode设置成singleInstance or singleTop(处理和前者不一样)结合Activity#onNewIntent(...)来实现吧

  2. 如果有交互要求, 就老老实实的一级一级返回吧.

另外, 也可以直接使用EventBus的库(EventBus, otto, RxBus都是可以的, 可以使用EventBus的场景也可以考虑使用LocalBroadcastManager), 只是需要考虑A万一被系统回收后的处理情景.

p.s. 静态全局方法就免了吧....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文