当列表显示并滚动时,ListAdapter.getView()会创建一个新的列表项视图,或者重新使用传递给它的现有视图(以“convertView”的形式)来显示新的内容。
我想知道,是否有一种方法可以获得getView()创建的所有视图?例如,如果列表项视图需要在活动被销毁时释放一些资源,那么浏览所有列表项视图并告诉它们释放资源将是很好的。
发布于 2012-01-24 04:12:58
由于ListView
是一个ViewGroup
,你应该能够像下面这样在子视图上迭代:
for (int i=0; i < myListView.getChildCount(); i++) {
View v = myListView.getChildAt(i);
//Check to see if this view has the resource, then release it
}
在这个问题中需要一些类似的东西:Android: Access child views from a ListView
发布于 2012-01-24 04:14:52
它是java。您不能为了释放资源而命令应用程序或实例被真正销毁。使用finalize(),您只能提高java机器执行此操作的概率。
发布于 2012-01-24 04:35:54
除非您的适配器在此活动之外使用(在这种情况下,您并不知道您不再需要这些视图,对吗?),您对此适配器的唯一引用是在此活动中。这意味着如果您的活动是垃圾收集的,那么您的适配器将被垃圾收集,这意味着您的视图将被收集。我不会费心去优化它,除非你在这个行为上有一个可测量的问题。
https://stackoverflow.com/questions/8977897
复制相似问题