如何持续观察Gps Provider?

时间:2013-07-11 10:29:32

标签: android gps

我想知道设备上的GPS何时打开,并且位置已更改。

以下是我所做的:

LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

public class MyLocationListener implements LocationListener
{
    @Override
    public void onLocationChanged(Location loc)
    {   
        Toast.makeText( getApplicationContext(),"onlocation changed",Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onProviderDisabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"providerdisabled",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onProviderEnabled(String provider)
    {
        Toast.makeText( getApplicationContext(),"provideenabled",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras)
    {

    }
}

当我的应用程序在前台运行时工作正常,但当我关闭它时,我将不再获得更新。我想知道在卸载我的应用程序之前如何连续获取这些信息。

1 个答案:

答案 0 :(得分:0)

您需要将其置于服务中并以粘性方式启动服务。

此外,您应该考虑使用GooglePlayServices来使用FusedLocationManager。

有关GooglePlayServices和位置的详细信息,请阅读here