0

为什么我们有意将数据从一个活动发送到另一个活动?我们不能改用静态变量并使用 ClassName.TheVariable 从其他活动访问吗?

4

3 回答 3

3

当数据封装在一个实例中时,这是一种很好的 OOP 模式。您可以阅读为什么静态变量被认为是邪恶的?.

并查看另一个好的 android 模式Content ProvidersUsing Shared Preferences

如果您将使用这种常见模式中的一些,其他开发人员将来会说“谢谢”。

于 2013-06-08T10:43:52.433 回答
1

如果 Android 为您的应用程序终止并重新启动进程,则静态变量将被分配为其默认值。如果您希望值保持不变,则最好使用 SharedPreferences 或 intent 而不是静态变量。

不推荐使用静态变量。静态变量存储在堆的 PermGen 部分中。即使类完成了它的工作,静态变量也会留在堆中。垃圾收集器会做标记和清扫。如果您在第二个活动中引用的第一个活动中有一个静态变量,则该引用将保持很长时间。

如果您使用更多静态变量,您可能会出现内存泄漏。也减少使用不必要的物品。

于 2013-06-08T10:41:31.013 回答
0

是的,您可以拥有您建议的静态数据。请注意,在应用程序中拥有静态数据的一种好方法是拥有一个应用程序对象,请参阅有关应用程序对象的 Android 文档

于 2013-06-08T10:41:35.327 回答