Android中的静态变量

Android中的静态变量,android,Android,我在活动中定义了静态变量,以便在活动之间传递复杂数据 许多人建议不要在Android中使用任何静态变量。一些人建议将全局数据存储在一个定制的android.app.Application中。我认为静态变量和自定义应用程序之间没有任何区别 我想知道你对静态变量的看法。有什么建议吗 谢谢。亲爱的上帝,别那么做。如果需要在活动之间传递对象,请使用服务。静态变量是按定义的全局变量,因为它们的作用域是类而不是实例。 根据您的设计,将这些全局变量集中起来可能比分散在过多的类上更好/更干净/更容易 此外,在传

我在活动中定义了静态变量,以便在活动之间传递复杂数据

许多人建议不要在Android中使用任何静态变量。一些人建议将全局数据存储在一个定制的android.app.Application中。我认为静态变量和自定义应用程序之间没有任何区别

我想知道你对静态变量的看法。有什么建议吗


谢谢。

亲爱的上帝,别那么做。如果需要在活动之间传递对象,请使用服务。

静态变量是按定义的全局变量,因为它们的作用域是类而不是实例。 根据您的设计,将这些全局变量集中起来可能比分散在过多的类上更好/更干净/更容易

此外,在传统的软件工程中,全局变量被认为是一件坏事,这是正确的,但当在资源稀缺的Android平台上编程时,优化使用资源以提高性能是最重要的,所以您应该以完全不同的心态进行开发。 在这种情况下,全局变量不必太糟糕


请注意,Android平台还提供了一个服务接口,可以满足您在活动之间共享变量的需要。

您能告诉我为什么吗?它会导致任何错误结果吗?AndroidFAQ说,静态变量是在活动之间传递数据的一种方式:它只是一种糟糕的设计,违背了面向对象的目的。静态字段通常用于读取数据。如果您正在以静态方式传递或设置数据,您可能应该重新考虑您的设计。在没有任何注释的情况下被否决一个已有一年历史的答案是很好的。既然您已经有了一个保存全局数据的应用程序类,并且在活动和服务中都可以轻松访问,而且没有任何烦人的问题,为什么要使用服务作为数据存储呢binders?@schwiz当你的应用程序在后台运行,只有你的服务在运行时会发生什么。您的应用程序全局变量也会被垃圾收集吗?@IgorG。不,你把应用程序和活动混淆了。应用程序将保留在内存中,只要您有正在运行的东西,无论是活动、服务还是接收器。