我有一个连接到互联网的android应用程序,可以实时对经纬度和长坐标进行反向地理编码。这延迟了用户界面,并可能导致它给出“没有响应 - 强制关闭/等待”错误(正如所料,不使用异步/线程处理程序!)Android onLocationChanged(位置loc)&ASync任务问题
我已经实现了一个异步任务,工作得很好UI滞后!),但在onLocationChanged方法中设置的变量(将它们设置为纬度&经度)是无法访问的。 我正在这样做的课程与另一个能够传递变量的独立课程相关联,并且可以将短信发送给包含反向地理编码地址的人。 但是,自从使用doinbackground方法实现异步任务以来,我无法再发送我需要的东西。我不知道我能否更好地解释,我会提供示例代码。
public void onLocationChanged(Location loc){myLow = loc.getLatitude(); mylong = loc.getLongitude(); }
列表地址= geoCoder.getFromLocation(mylat,mylong,1); // afaik,这是互联网的代码,这滞后于用户界面。如果我把它放在doinbackground中,它就不能访问mylong &我的长时间,并且“loc.getLatitude”必须在需要存在的“onLocationChanged”方法中完成。如果我将ListAddress代码放在doinbackground之外,一切都可以正常工作,但UI显然会滞后。
任何人都可以建议获取mylat = loc.getLatitude(); & mylat = loc.getLatitude();在doinbackground方法里面?
我试过了。有错误。尽管这听起来可行。这是我的代码。(mylat和mylong是全局声明的,并且有两种独立的get方法,所以发送短消息的其他类可以获得它们)http://pastebin.com/9b8Q3mFc – GrumP
我在哪里调用execute? – GrumP
你的AsyncTask应该是另一个类,不要在你的主类中继承它。内部类的示例:http://pastebin.com/2F0NEbUh – red