我正在尝试创建一个在文本消息中发送用户地址的方法。 (我知道如何获取地址,以及如何发送短信)
我创建了一个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(),它还会调用位置助手来获取地址,然后发送带有该地址的电子邮件。 这就是为什么我需要等到返回地址才能运行发送代码。
谢谢。
答案 0 :(得分:0)
您应该拨打LocationListener
,onLocationChanged
发送消息。我认为这比使用位置助手更容易。这看起来像是:
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