Android GPS提供商的问题:更新太多

时间:2011-04-11 17:51:08

标签: android gps location android-2.2-froyo locationmanager

虽然我在requestLocatioupdate方法中将minTime设置为10秒,但我仍然在不到一秒的时间内获得新位置。

 public class GpsActivity extends Activity {
LocationManager mLocationManager;
TextView mTextView;
int count;
     /** Called when the activity is first created. */
     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mTextView = (TextView) findViewById(R.id.text);
        count = 0;
        mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0,mGpsLocationListener);
     } 

     Handler mHandler = new Handler(){

         @Override
         public void handleMessage(Message msg){
             switch(msg.what){
             case 1:
                 mTextView.setText("new location count:"+count);
             }
         }
    };

    LocationListener mGpsLocationListener = new LocationListener(){

    @Override
    public void onLocationChanged(Location location) {
        count++;
        mHandler.sendEmptyMessage(1);

    }

    @Override
    public void onProviderDisabled(String arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
        // TODO Auto-generated method stub

    }

    };

}

我的程序是为Android 2.2编写的

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以设置距离。如果没有解决,你可以看到:minTime通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。 minDistance通知的最小距离间隔,以米为单位

所以我认为时间不正确,如果你希望更新10s,我认为你应该使用Time andTimeTask或者处理程序。或者你可以查看http://androidforums.com/developer-101/107085-proper-provider-parameter-requestlocationupdates.html