Предположим, что clusterManager изначально пуст, а исходный гео-запрос возвращает один результат A.
При входе в parseJsonToList
, items
имеет одну запись (A) и эту строку:
itemss = clusterManagerAlgorithm.getItems();
возвращает пустое значение Collection
.
Поскольку itemss
пусто, то
items.removeAll(itemss);
не имеет никакого эффекта, а остальная часть кода добавит A на карту.
Теперь, через 15 секунд возвращается тот же результат (A), эта строка
itemss = clusterManagerAlgorithm.getItems();
возвращает коллекцию с одним элементом, эквивалентным A (по позиции (равно))и теперь
items.removeAll(itemss);
удалит текущий результат (A), потому что он также находится в itemss
(снова на equals
с использованием позиции).
Итак, когда вы добавляете items
в этой строке:
mClusterManager.addItems(items);
ничего не добавлено, потому что items
пусто.
И, таким образом, шаблон наиболее вероятен ..
the marker appears
15 seconds later the marker disappears
15 seconds later the marker appears
Я не могу рекомендовать решение, так как не могу понять, почему clearItems
в конце - если вы действительно хотитечтобы сделать это, просто избавьтесь от логики «удаления».И документация действительно рекомендует форсировать кластер после добавления.