微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 通过引用从一个Activity传递到下一个Activity是否可能,以及最佳策略是什么?

我有一个简单的Android应用程序,它使用类的实例,让我们称之为DataManager,以类似Façade的方式管理对域类的访问.我最初设计它是一个单独的,可以使用静态方法检索,但我最终对我的实现的混乱感到恼火,并重构为我认为是一个更简单和更清洁的想法.

现在的想法是,对于打开的每个文件,创建一个DataManager,它们处理文件I / O和域类的修改(例如Book).当开始一个新的Activity时,我将这个实例作为Serializable额外传递(我还没有使用Parcelable,但是当我有基本概念工作时,我希望我会这样做),然后我从Intent中获取DataManager新Activity的onCreate()方法.

然而,对象的比较表明,从一个活动发送的对象与在第二个活动中从Bundle检索的对象不同(不同的引用).阅读Bundle(在StackOverflow等上)表明Bundles除了传值之外不能做任何其他事情.

那么什么可能是在活动之间传递对象最干净,最安全的策略?我能看到它

>忘记通过引用传递并使用具有自己的DataManager对象的每个Activity.每次关闭活动时都会传回新的DataManager,以便底层活动可以使用它. (我认为这是一个简单的解决方案.)
>返回使用单例DataManager并使用静态方法从每个Activity获取它. (不再热衷于使用单身人士.)
>扩展应用程序以创建一种对DataManager的全局引用. (再次,不热衷于全局变量的想法.)

这是一个公平的总结吗?我可以使用其他一些健康的策略吗?

最佳答案
另一种方法是创建服务.第一个活动将启动服务并绑定到它,当您启动新意图时,取消绑定第一个活动,当第二个活动启动时,绑定到该服务.

这样您就不必停止服务或担心在活动之间传递数据.

原文地址:https://www.jb51.cc/android/430467.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐