为什么我们有意向地将数据从一个活动发送到另一个活动?我们不能使用静态变量而是使用ClassName从其他活动访问。变量?
答案 0 :(得分:3)
当数据封装在一个实例中时,这是一种很好的OOP模式。你可以阅读Why are static variables considered evil?。
还要看另一个好的Android模式Content Providers或Using Shared Preferences。
如果您将使用其中一些普通模式,其他开发人员将来会说“谢谢”。
答案 1 :(得分:1)
如果Android杀死并重新启动应用程序的进程,则静态变量将被分配为其默认值。如果希望值保持不变,最好使用SharedPreferences或intent而不是静态变量。
建议不要使用静态变量。静态变量存储在堆的PermGen部分中。即使类完成它,静态变量也会保留在堆中。垃圾收集器会进行标记和扫描。如果第2个活动中引用的第1个活动中有静态变量,则引用将保持较长时间。
如果使用更多静态变量,可能会出现内存泄漏。还减少了不必要的物品的使用。
答案 2 :(得分:0)
是的,您可以拥有您建议的静态数据。请注意,在应用程序中使用静态数据的一种好方法是使用应用程序对象,请参阅Android documentaion about application object。