只是想知道在 Activity 之间传递信息、将其添加到包或使用单例类来存储和访问此数据的更好做法是什么。我过去曾将两者用于各种 android 端项目,但我现在正在开发一个规模更大的 android 项目,所以我更愿意在一开始就做事。
我的应用程序对用户进行身份验证,然后必须根据它的 ID 进行各种查询。为了最小化 Activity 之间的耦合,我认为最好的办法是将 id 添加到包中,然后让每个 Activity 查询它需要的信息;然而,为了提高响应能力,我倾向于使用单例类来存储持久信息,以防止不必要的查询。
最佳答案
就我个人而言,我会创建一个 Application
的扩展来存储您的应用程序的状态并在不同的 Activity 之间共享数据。 Application
充当整个应用程序的上下文,Android 保证在您的应用程序中始终只有一个实例。因此,它的工作方式类似于定义您自己的 Singleton,但使用 Application
将允许 Android 控制共享数据的生命周期,并基本上为您进行内存管理。
Here are some more details .如果你走这条路,你可以简单地添加任何 getter/setter(或其他)方法到你的应用程序扩展来存储/检索数据并对其进行操作。尤其是后者,当使用在 Activity 之间来回传递的 Bundle
时,管理起来会非常痛苦(并保持一致)。如果仅在 Activity 流中相邻的一两个地方需要数据,则仅使用Bundle
并且不需要运行任何(复杂的)操作在上面。
关于Android 以 bundle 方式传递持久信息还是使用单例模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449194/