我正在显示一个标记,用于显示用户在Android中的GoogleMaps v2 api中的位置,并且我还会显示用户正在查看的位置(有点像Google Map应用程序使用蓝点和箭头但是使用自定义绘图)。
为此,我使用了GroundOverlay项和重绘Bitmap的线程:
positionOverlayThread = new Thread()
{
public void run()
{
while(!stopPositionOverlayThread)
{
// We update the bitmap object by re-drawing it
updatePositionBitmap();
// We set it as the icon for the overlay
activity.runOnUiThread(new Runnable()
{
public void run()
{
BitmapDescriptor posDescriptor = BitmapDescriptorFactory.fromBitmap(positionBitmap);
_mPositionOverlay.setImage(posDescriptor);
try
{
Thread.sleep(200);
}
catch(InterruptedException e)
{
LogException(e);
}
}
}
});
}
};
这似乎会导致内存泄漏,我怀疑它是来自我每次创建的新BitmapDescritor。我不应该在每次通过时回收它吗?但我找不到任何这样做的方法。
编辑:我在gmaps-api上找到this thread但没有解决方案