我正在构建我的交互式地图,我发现自己真的很困惑:
我有一个ItemizedOverlay类的扩展,我正在管理叠加层。
当我使用它的populate()函数来更新mapView中的叠加层时,我应该何时使用invalidate()或postInvalidate()以使地图更新。
我发现有时这种方法有效,有时候另一方则有用。
如果有人能够准确地解释每个功能的确切含义 - 我将非常感谢,因为我找不到合适的解释。
答案 0 :(得分:3)
populate()。如果你要做的就是重绘它,那么你应该使用invalidate(),如果你在UI线程上,如果你在另一个线程上则使用postInvalidate()。 invalidate方法适用于任何View,无论是按钮,文本视图还是其他任何视图。他们基本上告诉Android一些与View相关的变化,比如显示的数据或按钮的状态或颜色等等。然后,Android会尝试通过调用View的onDraw()方法尽快重绘View。
答案 1 :(得分:0)
我总是使用invalidate()并且从来没有遇到过问题......(即总是刷新)