Android 以 bundle 方式传递持久信息还是使用单例模式?

标签 android android-activity singleton android-lifecycle android-bundle

只是想知道在 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/

相关文章:

android - 初学者 - 在另一个类中使用一个类中定义的变量

android - 如何在android中的非 Activity 类中获取ActionBar的标题

android - 我怎样才能沿着道路推断得更远?

Android - 多次使用图像资源但仅在 1 个实例上更改 alpha

android - 如何使用最新的(每晚)webkit 手动更新 android 浏览器?

javascript - Angular 作用域单例

ios - iOS 中的多个委托(delegate)

java - 如何查询 Firestore 数组值?

java - Android 阻止整个应用程序使用后退键功能

java - 在 Java 中实现单例模式的有效方法是什么?