1

我面临一些问题,因为 ItemizedOverlay 类的 createItem(int i) 方法为我在 itemizedOverlay 对象中添加的每个 overlayItem 多次调用。

通过查看我的 logcat 输出,您会得到更好的主意。

    01-01 20:51:33.486: I/System.out(690): addOverlay is called
01-01 20:51:33.497: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.506: I/System.out(690): addOverlay is called
01-01 20:51:33.517: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.526: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.536: I/System.out(690): addOverlay is called
01-01 20:51:33.536: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.546: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.556: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.576: I/System.out(690): addOverlay is called
01-01 20:51:33.576: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.596: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.606: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.616: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:33.637: I/System.out(690): addOverlay is called
01-01 20:51:33.637: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.657: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.676: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.696: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:33.708: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:33.726: I/System.out(690): addOverlay is called
01-01 20:51:33.726: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.736: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.757: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.776: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:33.796: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:33.816: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:33.836: I/System.out(690): addOverlay is called
01-01 20:51:33.836: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.846: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.866: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.886: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:33.897: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:33.906: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:33.916: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:33.936: I/System.out(690): addOverlay is called
01-01 20:51:33.936: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:33.958: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:33.976: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:33.996: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.016: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.036: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.056: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.056: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.087: I/System.out(690): addOverlay is called
01-01 20:51:34.087: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.096: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:34.106: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:34.127: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.146: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.166: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.176: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.196: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.206: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:34.216: I/System.out(690): addOverlay is called
01-01 20:51:34.216: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.236: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:34.247: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:34.256: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.266: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.286: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.306: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.318: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.336: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:34.346: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:34.366: I/System.out(690): addOverlay is called
01-01 20:51:34.366: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.376: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:34.396: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:34.406: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.428: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.436: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.446: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.456: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.476: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:34.496: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:34.506: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:34.526: I/System.out(690): addOverlay is called
01-01 20:51:34.526: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.536: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:34.556: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:34.566: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.586: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.606: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.616: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.616: I/dalvikvm(690): Jit: resizing JitTable from 512 to 1024
01-01 20:51:34.706: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.716: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:34.736: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:34.756: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:34.766: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:34.776: I/System.out(690): addOverlay is called
01-01 20:51:34.786: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.796: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:34.816: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:34.828: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:34.846: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:34.856: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:34.876: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:34.886: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:34.906: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:34.919: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:34.926: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:34.936: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:34.956: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:34.976: I/System.out(690): addOverlay is called
01-01 20:51:34.976: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:34.987: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:35.006: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:35.026: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:35.046: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:35.066: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:35.076: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:35.097: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:35.108: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:35.126: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:35.146: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:35.168: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:35.186: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:35.196: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 13
01-01 20:51:35.216: I/System.out(690): addOverlay is called
01-01 20:51:35.216: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:35.228: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:35.250: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:35.256: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:35.267: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:35.286: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:35.296: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:35.306: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:35.326: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:35.336: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:35.356: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:35.366: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:35.376: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:35.396: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 13
01-01 20:51:35.406: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 14
01-01 20:51:35.426: I/System.out(690): addOverlay is called
01-01 20:51:35.426: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:35.438: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:35.456: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:35.476: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:35.486: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:35.506: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:35.516: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:35.526: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:35.536: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:35.557: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:35.566: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:35.576: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:35.596: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:35.608: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 13
01-01 20:51:35.616: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 14
01-01 20:51:35.637: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 15
01-01 20:51:35.666: I/System.out(690): addOverlay is called
01-01 20:51:35.666: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:35.686: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:35.696: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:35.716: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:35.726: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:35.736: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:35.746: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:35.756: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:35.776: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:35.806: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:35.816: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:35.826: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:35.836: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:35.846: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 13
01-01 20:51:35.876: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 14
01-01 20:51:35.886: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 15
01-01 20:51:35.896: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 16
01-01 20:51:35.916: I/System.out(690): addOverlay is called
01-01 20:51:35.916: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 0
01-01 20:51:35.928: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 1
01-01 20:51:35.936: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 2
01-01 20:51:35.946: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 3
01-01 20:51:35.966: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 4
01-01 20:51:35.976: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 5
01-01 20:51:35.986: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 6
01-01 20:51:35.998: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 7
01-01 20:51:36.016: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 8
01-01 20:51:36.026: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 9
01-01 20:51:36.036: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 10
01-01 20:51:36.056: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 11
01-01 20:51:36.077: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 12
01-01 20:51:36.086: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 13
01-01 20:51:36.096: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 14
01-01 20:51:36.106: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 15
01-01 20:51:36.126: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 16
01-01 20:51:36.138: I/System.out(690): ItemizedOverlayForNearbyLocation createItem() 17

我不明白为什么它会多次调用,而它们中的每一个都应该只创建一次。因为这意味着我为单个项目占用了更多内存。

任何人对 ItemizedOvelray 类有任何想法或更好的理解。请帮助我。

4

1 回答 1

0

这就是populateItems工作的方式。使用Polaris会更好,它使用起来更简单,功能更强大。

于 2013-01-01T15:37:57.963 回答