【问题标题】:Does making a View invisible clears memory?使视图不可见会清除内存吗?
【发布时间】:2011-11-10 16:50:41
【问题描述】:

我有一个自定义视图,我在 onDraw 函数中的位图上绘制。

如果我通过 View.setVisibility(View.GONE) 将 View 设置为不可见,它会清除所有内存

分配的位图?

【问题讨论】:

  • 您指的是哪些分配的位图?如果您自己分配位图,那么通过在视图上设置此属性肯定不会释放它们。如果您担心 View 的后缓冲,我不确定您是否可以直接控制它。

标签: android view bitmap


【解决方案1】:

不,它没有。您必须在位图上调用recycle 才能释放内存。

【讨论】:

  • 是否有监听器或者我应该覆盖 setVisibility?
  • 虽然您可以只覆盖 setVisibility,但这是一种不好的做法,除非您在调用 setVisibility 以使视图再次可见时自动处理重新加载位图。
  • 在不了解您的应用程序的情况下很难确定。如果视图不太可能重新显示,那么我会说这可能没问题,因为您不会一遍又一遍地重新加载位图。
  • 我现在正在为我的游戏构建库存屏幕。为此开始一个新活动是否比在主视图上打开视图更好?
  • 最好使用与您正在做的相同的视图(我假设为游戏设置视图的计算成本很高,并且您不想每次都这样做关闭库存窗口)。您可以做的只是确保您保留将始终显示的位图(背景等),然后在每次库存视图可见时加载更动态的位图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多