我目前有以下代码
while (!visibleTiles.isEmpty())) {
tile = visibleTiles.keySet().iterator().next();
if (tile != null){
bitmap = visibleTiles.remove(tile);
if(bitmap != null && !containsKey(tile)){ //safe to recycle if tile cache is not actively holding it
bitmap.recycle();
}
}
}
但是,我在线上遇到 NoSuchElementException 崩溃
tile = visibleTiles.keySet().iterator().next();
使用 isEmpty() 方法和调用 hasNext() 调用有很大区别吗?我知道 hashmaps 没有 hasNext() 调用,所以我做了以下操作:
while (visibleTiles.keySet().iterator().hasNext()) {
tile = visibleTiles.keySet().iterator().next();
if (tile != null){
bitmap = visibleTiles.remove(tile);
if(bitmap != null && !containsKey(tile)){ //safe to recycle if tile cache is not actively holding it
bitmap.recycle();
}
}
}
显然,我知道我应该只运行应用程序并查看它是否崩溃,但问题是很难重现该问题。
谢谢!