我有一個ListView綁定到數據適配器後,我創建並加載我的位置對象與設備的geoloc(拉特/長)後,顯示固定地標的距離。問題是,平均來說,下面的代碼需要3-7秒才能加載,較長的過程是調用「requestLocationUpdates()」,如果沒有NETWORK_SERVICE,並且GPS_SERVICE成爲主要時,有時可能需要幾分鐘才能加載,使我的Activity ListView blank應該在Activity的OnCreate()上調用locationManager.requestLocationUpdates()?
OnCreate()Activity方法是requestLocationUpdates()被調用的最佳位置嗎?
locationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE); locationListener = new GeoLocationListener();
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setSpeedRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
locationManager.requestLocationUpdates(provider,
0, //300000, // TODO: Default to Check Every 5 Minutes OR
0, //500, // TODO: Default to Check if device moves more than 500 meters
locationListener);
你說得對。我跑進這篇文章懸而未決的幫助:「你可能不關心所有可用的位置提供,但只是想提供最好的要做到這一點,我們指定例如,我們是否需要高度和方位,是否需要成本等等 我們現在可以向位置管理員詢問最後一個已知位置,對於特定的提供商。這對於快速將您置於接近最後的位置,同時等待更新進入。「 http://marakana.com/forums/android/examples/42.html – CampbellGolf 2012-04-16 19:38:14