我有一個連接到互聯網的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