【问题标题】:Does the View.Remove method clear the memory from the removed element?View.Remove 方法是否从已删除元素中清除内存?
【发布时间】:2013-12-20 13:20:11
【问题描述】:

也许这个问题也可以被问到任何其他 UI 元素的删除方法,不仅是视图,而且在我的情况下,我已经从另一个视图中删除了一个元素(一个视图)。

$.basewincontent.remove($.detailsoireescreen);

这是为了优化我的应用程序内存。首先,我想问一下这个元素是否真的从内存中删除了,我自己做了一些测试但不知道,这些是测试代码:

Ti.API.info("typeof $.detailsoireescreen : "+typeof $.detailsoireescreen);
Ti.API.info("test if $.detailsoireescreen is null : "+$.detailsoireescreen == null);

typeof $.detailsoireescreen

总是返回

“$.detailsoireescreen 类型:对象”

在控制台中,$.detailsoireescreen == null 总是返回 0 对于这个测试,我期望 typeof 在元素被删除后是“未定义”并且布尔值为 1(如果这是钛为布尔“真”而不是 0 返回的值(这是假的)

我的第二个问题是:因为我正在使用 Alloy,并且我在 xml 上编写我的 UI 元素,所以我不是自己创建这些元素,而是在我删除之前第一次从 xml 中读取它们他们。因此,在我的第一个问题中删除它们之后,我可以再次从 xml 本身再次加载它们吗?还是我需要创建从未创建过的所有内容?

最好的问候。

【问题讨论】:

    标签: xml titanium-mobile titanium-alloy


    【解决方案1】:
    1. 我认为您不必担心 javascript 对象,而只需担心真正的本机 UI 组件,例如您要在此处删除的 UIView。从视图层次结构中删除它足以重新获得它占用的内存。您可以在删除视图前后使用 Ti.Platform.availableMemory 跟踪应用程序的可用内存来验证这一点。有关更多详细信息,您还可以尝试使用用于分析的 xcode 工具 Instruments。

    2. 您可以重复使用它们,只要您在第一次删除它们后不取消它们,因为您将失去对它们的引用并且它们将被销毁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      相关资源
      最近更新 更多