2

情况:

我正在开发一个应用程序,它是某种相框应用程序(用户可以选择 16 个框架),其中包括:

  • ViewPager 最多有 5 个 ListView。(离屏限制设置为 1,所以我们可以假设只有 3 个 ListViews 将在内存中)
  • 每个 ListView 有 17 种视图类型(16 帧 + 加载视图)

我们都知道 Android 将我们的屏幕外行保存为内存中的 convertView。所以,在我的情况下,最坏的情况下,我可能会在我的记忆中得到 17 个 convertViews * 3 ListView = 51 个视图(可能更少,也可能更多,不重要)。

虽然简单的 51 个视图不会消耗大量内存(我假设)。我的视图都充满了体面的位图,这是相当大的内存消耗。

问题:

无论如何,我是否可以检测到视图变为屏幕外(或变为 convertView),以便我可以立即释放对其可绘制对象的引用?

我的进步:

我一直在查看 AbsListView 的 adt bundle 的源代码(Api 16),将一个 scrapView 放入 RecycleBin,我相信可以在那里进行检测,但这需要我自定义整个类。我担心旧的 Api 不能支持 Api 16 中的内容,所以我在这里询问是否有其他更好的选择。

感谢您的时间。

4

0 回答 0