我的情况:
我使用一个AsyncTask
为谷歌地图准备数据。因为此任务需要一些时间,所以我想在对象准备好时显示它们(而不是在完成后立即显示它们)。所以我使用publishProgress
&onProgressUpdate
来更新地图。
我使用 Google Maps Android API 实用程序库将标记添加到地图中。我ClusterManager.cluster()
在数据更改后调用以强制重新加载标记。
问题:
什么都没发生。更新ProgressBar
fromonProgressUpdate()
完美无缺,但在地图上显示标记却没有。我可以看到所有应该被调用的方法都被调用了,并且我已经测试过这些方法在不是从AsyncTask
. 在AsyncTask 完成后,所有标记都会神奇地显示出来,即使没有调用其他方法。
如果我使用相同的方法通过标准 API 将标记直接添加到地图中(即,而不是将它们添加到集群管理器中),则标记会按预期显示。
所以问题是 - 集群管理器是否有任何理由等待重新集群,直到 AsyncTask 完成?编辑:更准确地说,不是在doInBackground
完成之后,而是在onPostExecute
完成之后。
我无法理解和调试这个问题,已经花了一整天的时间。
提前致谢!