Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌地图滚动速度慢,手机应用程序在尝试显示50标记时显示ANR_Android_Google Maps_Service_Timer_Google Maps Markers - Fatal编程技术网

Android 谷歌地图滚动速度慢,手机应用程序在尝试显示50标记时显示ANR

Android 谷歌地图滚动速度慢,手机应用程序在尝试显示50标记时显示ANR,android,google-maps,service,timer,google-maps-markers,Android,Google Maps,Service,Timer,Google Maps Markers,嗨,我试图在谷歌地图上显示100个标记,但当我们在地图上渲染标记时。谷歌地图滚动停止和应用程序显示ANR。 下面是我在地图上显示标记的代码。 此外,API使用服务每隔5秒调用一次 请告诉我我们做错了什么 if (getWorkerSummaryListResponse.getErrorCode() == 0) { workerListList = getWorkerSummaryListResponse.getWorkerListList();

嗨,我试图在谷歌地图上显示100个标记,但当我们在地图上渲染标记时。谷歌地图滚动停止和应用程序显示ANR。 下面是我在地图上显示标记的代码。 此外,API使用服务每隔5秒调用一次

请告诉我我们做错了什么

 if (getWorkerSummaryListResponse.getErrorCode() == 0) {
                workerListList = getWorkerSummaryListResponse.getWorkerListList();
                Log.d(TAG, "setData: " + workerListList.toString());


                for (user.WorkerSummary workerBasicInfo : workerListList) {
                    userPosition = workerBasicInfo.getUserPosition();
                    workerAlarmStatus.get(workerBasicInfo.getUserAlarmStatus());
                    if (workerBasicInfo.getWorkerActiveStatus() == 1) {
                        if (!userPosition.toString().equalsIgnoreCase("")) {
                            if (!mOnlineWorkerList.contains(workerBasicInfo)) {
                                mOnlineWorkerList.add(workerBasicInfo);
                            }
                            userPosition.getGpsData().getLat();
                            userPosition.getGpsData().getLng();
                            markerOptions = new MarkerOptions();
                            markerOptions.icon(icon);
                            markerOptions.position(new LatLng(userPosition.getGpsData().getLat(), userPosition.getGpsData().getLng()));
                            markerOptions.title(workerBasicInfo.getWorkerInfo().getEmail());
                            //  mMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(userPosition.getGpsData().getLat(), userPosition.getGpsData().getLng())));
                            // mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(userPosition.getGpsData().getLat(), userPosition.getGpsData().getLng()), 12.0f));//where 14.0 is the zoom level
                            marker = mMap.addMarker(markerOptions);
                            marker.setTag(workerBasicInfo);
                        }

                    }
                }
服务代码:---

公共类MyService扩展服务{

public static final int notify = 20000;  //interval between two services(Here Service run every 5 seconds)
int count = 0;  //number of times service is display
private Handler mHandler = new Handler();   //run on another Thread to avoid crash
private Timer mTimer = null;    //timer handling
AuthorizeApp mAuthorizeApp;


@Override
public IBinder onBind(Intent intent) {
    throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public void onCreate() {
    mAuthorizeApp = AppManager.shareInstance(this).getAuthorizeApp();
    if (mTimer != null) // Cancel if already existed
        mTimer.cancel();
    else
        mTimer = new Timer();   //recreate new
    mTimer.scheduleAtFixedRate(new TimeDisplay(), 0, notify);   //Schedule task
}

@Override
public void onDestroy() {
    super.onDestroy();
    mTimer.cancel();    //For Cancel Timer
    Toast.makeText(this, "Service is Destroyed", Toast.LENGTH_SHORT).show();
}


//class TimeDisplay for handling task
class TimeDisplay extends TimerTask {
    @Override
    public void run() {
        // run on another thread
        mHandler.post(new Runnable() {
            @Override
            public void run() {
                // display toast
                mAuthorizeApp.getRealTimeInstrumentInfo(new GetInstrumentListTask(getApplicationContext()));
            }
        });

    }

}