- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在这里有一个关于性能的一般性问题,我应该使用哪些,哪些不应该使用。我实际上在我的应用程序中使用了两个 Activity ,我们称之为“theFirst”和“theSecond” Activity 。
在第一个 Activity 中,我有一个公共(public)静态对象,在我的例子中,它是我创建的自定义对象列表,称为 Conjunction。
当我调用 theSecond Activity 时,我想获取此列表的内容。那么我应该使用公共(public)静态变量吗?有什么问题吗? TheFirst Activity 只有一个实例,对吗?所以使用公共(public)静态变量没问题..?我猜。
或者我应该计算整个列表并将信息放在一个大字符串上,然后使用 putExtra 方法将其发送到第二个 Activity ?
如果对此有一个很好的解释,我将非常感激 :)
最佳答案
不推荐使用静态变量。静态变量存储在堆的 PermGen 部分。即使该类完成它仍然可以工作,静态变量仍保留在堆中。垃圾收集器进行标记和清除。如果在第二个 Activity 中引用的第一个 Activity 中有静态变量,则链接会保持很长。如果您使用更多静态变量,您可能会遇到内存泄漏。也减少使用不必要的元素。
静态变量由 Class 对象引用,而 Class 对象又由 ClassLoader 引用 - 因此除非 ClassLoader 以某种方式删除 Class 或者 ClassLoader 本身有资格进行垃圾回收,否则静态变量不会被垃圾回收。因此,如果您使用在许多类中引用的静态变量,那么这些类和声明静态变量的类不能被垃圾回收,除非这些类可用于垃圾回收。所以这会导致堆内存膨胀导致内存泄漏。
我建议对基元类型使用 puExtra。在您的情况下,使用单例应该会有所帮助。
在这段视频中,这个人讨论了为什么不应使用静态变量以及如何避免内存泄漏。 http://www.youtube.com/watch?v=_CruQY55HOk .这家伙谈论使用 MAT 分析器检查内存泄漏。
另请查看此链接。 http://developer.android.com/guide/faq/framework.html 。查看标题 *How do I pass between Activities/Services within a single application? 下的详细信息。
关于android - 公共(public)静态变量或使用意向类的 putExtra 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322508/
在下面的 for 循环中,最后一个 putExtra 覆盖了第一个 putExtra,即使它们采用不同的参数和不同的变量。 首先:putExtra(String,String)第二:putExtra(
这个问题听起来可能很愚蠢,但我想知道我们什么时候将 Activity 名称放入 Intent.putExtra() 中?在一种情况下,我们仅将 extra 与 bundle 放在一起,而在另一种情况下
什么更快?将一堆字符串值添加到 bundle,然后将其添加到 intent?或者只是使用 intent.putExtra() 将值添加到 intent?还是差别不大? 谷歌搜索给了我教程,但没有太多答
我正在考虑我当前的应用程序。我有这个带有两个选项卡的 TabHost 类。Tab1 在 ListView 中显示来自 WS 的数据。 Tab2 在 webview 中显示与图表相同的数据。 当然,我不
基于 Searchable Dictionary示例 我尝试将额外的数据放入不同的 Activity 中。 public void onCreate(Bundle savedInstanceStat
我的问题是在 3 个 Activity 之间传递一个字符串。我解释一下我是如何做到的。 第一个名为 loginActiviy 的 Activity 是我执行此操作的地方。 //OnCreate e
我有一个要求,我想开发一个混合应用程序并列出蓝牙设备、扫描和连接、共享文件等。 所以我想将 BluetoothAdapter mAdapter 值添加到 extras 中并将其传递到 onActivi
我正在关注这个例子: http://developer.android.com/training/camera/photobasics.html 如果您为此 putExtra(MediaStore.E
好的 所以我想使用 getextrand putextra 方法将值从一个 Activity 传递到另一个 Activity 。 在我想要接收数据的第二个 Activity 中,充满了按钮和 Text
我在点击按钮时使用此操作调用 Activity: EditText text = (EditText) findViewById(R.id.codice); Intent intent = new I
我有 Intent,我从 MainActivity 将两个 ArrayLists 的 Parceables 传递给一个“FormActivity”,它接收 ArrayLists perfeclty(使
这是用于将数据发送到主 Activity 的函数。 public void sendData(){ String name = Bookname.getText().toString(
我想将 Intent 从第一个 Activity 发送到另一个 Activity 。 第一个 Activity 向第二个 Activity 发送一个 Intent 以创建一个新的 AlertDialo
我有多个变量要从一个 Activity 传递到另一个 Activity 。 我在第一个 Activity 中有这个: public void onClick(View v) { switch(
我有一个通知,当按下时应该启动一个 Activity ,该 Activity 又会启动一个对话框。这一切都有效,但对话框从通知中提取信息认为 Intent.putExtra()。问题是,它总是从 pu
这个问题在这里已经有了答案: Passing JSONObject to another activity via Intent [duplicate] (3 个答案) 关闭 5 年前。 如何使用p
我在 GCMIntentservice 中编写了一段代码,用于向许多用户发送推送通知。我使用的NotificationManager将在单击通知时调用DescriptionActivity类。我还将
我有一个代码,使用 putextra 方法将数据从 Activity 推送到另一个 Activity ,我想使用相同的键推送不同的值代码: String int_value = "int_value"
我有 2 项 Activity ,我正在尝试将第一个 Activity 中的值放入第二个 Activity 中。在第一个 Activity 中,我创建了一个带有 onClick 参数的按钮。 然后我
我正在尝试开发一个二维码扫描仪,我想向用户显示扫描结果的历史记录。现在,虽然扫描的数据值已正确传递到不同的 Activity ;它的问题是,即使我没有扫描 qr,空数据也会传递到下一个 Activit
我是一名优秀的程序员,十分优秀!