我几乎没有为最后一个活动设置参数的活动 例如,假设我有 4 个活动 A->B->C->D。在 A、B、C 活动中,用户选择了一些最终需要对 D 可用的参数。现在有两种方法可以实现这一点
- 使用intent.putExtra 将参数值传递给活动,即A 将其参数传递给B,然后B 将其传递给C,依此类推。
- 将这些存储在某个静态类中,Activity D 可以从那里访问它。
只是想知道,这些方法中哪一种最好,为什么?
Android 开发网站提供了对跨 Activity 数据传递选项的全面审查以及使用它们的建议时间,最好是您审查它们并选择最适合您情况的解决方案。
还有第三种方法可以将参数存储在Shared Preferences中
这是教程,即如何实现共享偏好。
如果您在代码中使用共享首选项,则无需将数据(参数)从 Activity A->B->C 传递到 D 中。您只需保存一次数据(参数)即可重新开始任何活动。
希望这可以帮助
这实际上取决于您的需求和信息量。如果信息很少(可能是 2 或 3 条数据),我会说 usingputExtra()
很好,也许建议将它们放在 a 中Bundle
,这样您就不必担心每一个额外的Activity
.
如果您处理的远不止这些,那么我建议您将它们添加到单独的类中。IMO,如果您决定以其他方式使用数据,则以这种方式维护会更容易,语法错误的机会更少(例如拼写错误的“key”参数)并且更灵活。
在我当前的应用程序中,它开始使用extras
,只有几个,然后发展成为更多。它变得难以管理,因为数据最终被传递并用于许多不同的类。我刚刚完成了创建几个单独的类static HashMaps, ArrayLists, and ContenValues
,其中包括objects
. 然后我不得不将所有extras
数据迁移到这些类。