Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 公共静态变量或使用intent类的putExtra方法_Android_Variables_Android Activity - Fatal编程技术网

Android 公共静态变量或使用intent类的putExtra方法

Android 公共静态变量或使用intent类的putExtra方法,android,variables,android-activity,Android,Variables,Android Activity,我这里有一个关于性能的一般性问题,我应该做哪些,不应该使用哪些。 我实际上在我的应用程序中使用了两个活动,让我们称之为“第一个”和“第二个”活动 在第一个活动中,我有一个公共静态对象,在我的例子中,它是一个由我创建的自定义对象列表,称为连接 当我调用第二个活动时,我想获取此列表的内容。 那么我应该使用公共静态变量吗?有什么问题吗?第一个活动只有一个实例,对吗?所以使用公共静态变量没有问题。。?我想是吧 或者我应该计算整个列表并将信息放在一个大字符串上,然后使用putExtra方法将其发送给第二个

我这里有一个关于性能的一般性问题,我应该做哪些,不应该使用哪些。 我实际上在我的应用程序中使用了两个活动,让我们称之为“第一个”和“第二个”活动

在第一个活动中,我有一个公共静态对象,在我的例子中,它是一个由我创建的自定义对象列表,称为连接

当我调用第二个活动时,我想获取此列表的内容。 那么我应该使用公共静态变量吗?有什么问题吗?第一个活动只有一个实例,对吗?所以使用公共静态变量没有问题。。?我想是吧

或者我应该计算整个列表并将信息放在一个大字符串上,然后使用putExtra方法将其发送给第二个活动


关于这一点的一个很好的解释将是非常好的,我将非常感激
:)
公共静态不是一个好主意。在某些情况下,系统可能会终止“第一”活动。完成:可以帮助您了解活动的工作方式


最好不要将putExtra真正用作字符串,也不要将putExtra用作可解析或可序列化的对象

不建议使用静态变量。静态变量存储在堆的PermGen部分。即使类完成工作,静态变量仍保留在堆中。垃圾收集器进行标记和清理。如果第一个活动中有一个静态变量,而第二个活动中引用了该静态变量,则链接将保持较长时间。如果使用更多静态变量,可能会导致内存泄漏。还可以减少不必要对象的使用

静态变量由类加载器引用的类对象引用-因此,除非类加载器以某种方式删除类或者类加载器本身有资格进行垃圾收集,否则静态变量不会被垃圾收集。因此,如果您使用在许多类中引用的静态变量,那么除非这些类可用于垃圾收集,否则这些类和声明静态变量的类不能被垃圾收集。因此,这会导致堆内存扩展,从而导致内存泄漏

我建议对基本类型使用puExtra。在您的情况下,使用单例应该会有所帮助

在这段视频中,这个家伙谈到了为什么不应该使用静态变量以及如何避免内存泄漏。。这家伙说要用MAT Analyzer检查内存泄漏


也可以看看这个链接。查看标题*如何在单个应用程序中的活动/服务之间传递数据?

下的详细信息。使用单例模式通常比公共静态字段要好。最后一个链接包含非常好的信息,感谢您的共享。我现在使用putExtra,我计算字符串,然后我使用putExtra放置字符串,然后我调用活动。我想这是一个很好的解决方案:)谢谢,伙计;)Acitivy Lifecycle有很多好信息,我只是偷偷地看了一下,非常好,非常感谢mate;)我正在使用putExtra。谢谢;)