我是android的新手,我正在尝试从多边形中清除地图,而这些多边形在一个上面没有被查看。我决定在Thread中做这件事。但是当我尝试调用contains方法时,它会抛出一个exeption" java.lang.IllegalStateException:不在主线程上"
Thread mThread = new Thread(new Runnable() {
@Override
public void run() {
try {
while (true) {
if (mPolygones == null || mPolygones.isEmpty())
continue;
synchronized (mPolygones) {
for (int i = 0; i < mPolygones.size(); i++) {
Polygon polygon = mPolygones.get(i);
if (mLatLngBounds.contains(polygon.getPoints().get(0))) {
Intent intent = new Intent("polygon");
intent.putExtra("index", i);
mLocalBroadcastManager.sendBroadcast(intent);
}
}
}
}
} catch (Exception ex) {
ex.getMessage();
}
}
});
我在OnCameraMoveListener回调中从谷歌地图获得mLatLngBounds。有没有办法做到这一点?我会对所有建议表示赞赏
答案 0 :(得分:0)
你为什么要在一个单独的线程中这样做呢?只需在onCameraIdle监听器中运行此代码,您就可以了。 (你不需要为每次相机运动都运行它。)
答案 1 :(得分:0)
麻烦在于多边形。我试图从UI线程中获取多边形点