在继续使用代码之前,Android等待位置监听器

时间:2014-01-05 18:41:46

标签: android android-intent

我正在尝试创建一个在文本消息中发送用户地址的方法。 (我知道如何获取地址,以及如何发送短信)

我创建了一个LocationHelper类,用于获取纬度和经度,然后将地址作为String返回。

问题是我不想在发回地址之前执行发送消息代码。如何延迟我的代码等待返回地址。

    public void sendMessage(){
    String address = // where I call location helper to get address

    // Message is sent using the address string - code below executes before the address is returned - need to delay running the code below
    sending message functionality goes here
    ...
    }

我还想要其他方法,例如sendEmail(),它还会调用位置助手来获取地址,然后发送带有该地址的电子邮件。 这就是为什么我需要等到返回地址才能运行发送代码。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该拨打LocationListeneronLocationChanged发送消息。我认为这比使用位置助手更容易。这看起来像是:

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 70, locationListener);
locationListener = new LocationListener() 
    public void onLocationChanged(Location location) {
    longitude = location.getLongitude();
    latitude = location.getLatitude();
        Geocoder gCoder = new Geocoder(myContext);
        ArrayList<Address> addresses = gCoder.getFromLocation(latitude, longitude, 1);
        if (addresses != null && addresses.size() > 0) {
            // get the address
        }
        // send the message