由于某种原因,当我在requestLocationUpdates()方法之后添加removeUpdates()时,我根本没有获得任何位置数据。 我没有正确取消订阅吗?

LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 5000, 1, mlocListener);
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 5000, 1, mlocListener);
mlocManager.removeUpdates(mlocListener);


public class MyLocationListener implements LocationListener
    {
        @Override
        public void onLocationChanged(Location loc)
        {
            loc.getLatitude();
            loc.getLongitude();
            String text = "My current location is: " +
            "Latitude = " + loc.getLatitude() +
            "Longitude = " + loc.getLongitude();
            System.out.println("FINISHED:");
            Toast.makeText( getApplicationContext(),
                    text,
                    Toast.LENGTH_SHORT).show();

        }
}

===============>>#1 票数:1

您可以尝试制作一种方法并在其中执行removeUpdates()。 并在获取数据后从onLocationChanged()调用它。

===============>>#2 票数:0

可能会有所帮助。

获取位置数据退订,这意味着在onLocationChanged方法中。

===============>>#3 票数:-1 已采纳

我最终在我的LocationHandler内创建了一个带有嵌套的Thread while并一直循环直到找到GPS位置。 找到后,我取消了LocationListener订阅。

  ask by Neeta translate from so

未解决问题?本站智能推荐:

关注微信公众号