如何每隔1分钟获取当前位置?

时间:2011-09-29 04:51:47

标签: android android-layout android-emulator gps android-ndk

我已经实现了Demo来显示用户的当前lat-long。 现在我能够看到当前位置的lat-long。 但我想将它设置为每隔1分钟显示一次。 代码如下:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener lListener = new mylocationlistener();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, lListener);
    }

    private class mylocationlistener implements LocationListener {
        @Override
        public void onLocationChanged(Location location) {
            if (location != null) {
            Log.d("LOCATION CHANGED", location.getLatitude() + "");
            Log.d("LOCATION CHANGED", location.getLongitude() + "");
            Toast.makeText(MainActivity.this,
                "My current location:\nLatitude:"+location.getLatitude() + "\nLogitude:" + location.getLongitude(),Toast.LENGTH_LONG).show();
            }
        }

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

        }

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

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }
    }
}

那么,我需要做些什么才能让它在每1分钟的时间间隔内显示当前的lat-long? 我想我必须使用线程来实现它。如何使它成为可能?

1 个答案:

答案 0 :(得分:1)

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, lListener);

方法中的参数表示 - 提供者,时间,距离和位置监听器。

因此,要从位置侦听器请求更新,您需要将第二个参数设置为1000 * 60,因为时间以毫秒为单位记录。