为什么在使用静态变量执行相同任务时可以使用parcelable?

时间:2011-07-08 11:21:57

标签: android ipc parcelable

我是android和java的新手...我正在读几天关于android parceling教程的传输数据或变量值从一个活动到其他或一个类到其他...但我不太了解那。   你可以告诉我为了这个目的有必要使用Parcelable,因为同样的任务也可以使用变量的static关键字作为字符串,整数或数组类型执行,然后为什么parcelable pls详细解释。 。   感谢提前解释请提供与示例比较

2 个答案:

答案 0 :(得分:6)

虽然从技术上讲这两种方法都有效,但存在一些缺陷。

首先,静态变量是静态的。如果您有两个相同活动的实例,则它们都将引用相同的静态对象。这可能不是你想要的。

其次,访问全局变量被认为是不好的做法。这使得很难看到发生了什么,很难测试,而你(另一个类)可以修改你的数据。这会产生一些可怕的错误。

通过Parcelable对象传递数据,很清楚你在做什么,你就避免了这两个问题。

请注意,此建议特定于Android,而不是Java和编程。

答案 1 :(得分:0)

静态引用永远不会被垃圾回收,因此您最终会创建称为内存泄漏的东西。

您正在将不需要的对象保留在内存中,并且无法释放该对象。

如果您这样实例化足够的对象,您将获得内存不足(oom)异常,这将导致应用程序崩溃。