【发布时间】:2015-05-07 10:46:45
【问题描述】:
我一直想知道在这个question on stack overflow 中,在 Android 上的活动之间传递复杂数据的一种解决方案是使用静态数据成员。
但不知何故,我觉得这不是你应该这样做的方式,即使它似乎是最简单的方式。
因此,我的问题是使用静态成员传递复杂数据的缺点是什么。
【问题讨论】:
标签: android android-activity static-members
我一直想知道在这个question on stack overflow 中,在 Android 上的活动之间传递复杂数据的一种解决方案是使用静态数据成员。
但不知何故,我觉得这不是你应该这样做的方式,即使它似乎是最简单的方式。
因此,我的问题是使用静态成员传递复杂数据的缺点是什么。
【问题讨论】:
标签: android android-activity static-members
如果满足所有这些条件,则可以使用静态引用在组件之间传递数据:
由于这些条件非常严格,因此通常采用不同的方法(一些由 gmale 建议)会更好。
我认为最大的缺点是静态数据的管理——通常很难判断何时不再需要数据以及何时可以发布。
【讨论】:
应避免使用静态成员。这是在 Android 中传递数据的最糟糕的方式之一。静态对象在应用程序的生命周期之外仍然存在。因此,用户可以退出您的应用程序并且您的数据仍然存在,因为该类仍加载在 JVM 中。这很糟糕。
有时,Otto 是传递复杂数据的好选择,它与活动生命周期配合得很好。我在许多项目中看到的另一种选择是老式的监听器或回调。还有intent services和local broadcast managers。
有很多方法可以共享复杂的数据。我会认为“静态”对象不是首发。像瘟疫一样避开它们。
【讨论】: