使用下面的代码来获取我的lat / lon的地址
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
getFromLocation方法很臃肿。我已经在另一个Thread中执行了,但我想取消操作。
那么如何取消getFromLocation?
答案 0 :(得分:1)
查看Displaying a Location Address的Android文档。
在这里创建一个IntentService,它在一个工作线程上运行,并在onHandleIntent()
完成后自行完成。他们正在使用ResultReceiver,它接收来自geocoder.getFromLocation(lat,lng,1)的结果。传递给handler
构造函数的ResultReceiver
将返回主/ ui线程。
在此示例中,您根本不需要取消操作。它在一个服务中运行,在一个工作线程上运行,因此不会阻塞你的main / ui线程。此外,服务在完成geocoder.getFromLocation(lat,lng,1)后自行关闭。如果您不想再在主/ ui线程上收到位置结果,您也可以在ResultReceiver
内轻松处理。