我想在android中構建Google地圖集成。我的應用程序只是在地圖上顯示當前位置。我能夠從GPS獲得正確的緯度和經度值,並且它已被指向使用疊加層類別的最近位置。我正在嘗試將GPS緯度和經度值轉換爲其地名,並且這是在單獨的處理程序線程中完成的。當我的應用程序在某些時候android設備正在屏幕鎖定模式下運行時。解鎖屏幕後,有時我看到我的當前mapActivity在一段時間內沒有迴應,系統生成Android ANR消息以「強制關閉」此活動。這是否僅僅是因爲我的處理程序發生?線程沒有響應回主系統UI線程?或者有關於此的其他問題? 我對處理器線程代碼片段如下...如何在地圖集成應用程序中使用處理程序線程時避免Android ANR?
private void ConvertPointToLocation(GeoPoint point) {
final GeoPoint p= point;
Thread thrd = new Thread()
{
public void run(){
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
p.getLatitudeE6()/1E6,
p.getLongitudeE6()/1E6, 1);
if (addresses.size() > 0) {
for (int indexValues = 0;
index < addresses.get(0).getMaxAddressLineIndex(); indexValues++)
address += addresses.get(0).getAddressLine(indexValues) + " ";
}
uiCallback.sendEmptyMessage(0);
}
catch (IOException e) {
e.printStackTrace();
}
}
};
thrd.start();
}
private Handler uiCallback=new Handler(){
@Override
public void handleMessage(Message msg)
{
//TextView locationNameDisplay value is set by address String variable...
locationNameDisplay.setText(address);
address="";
}
};
我需要知道爲什麼Android的不是當我的活動在後臺要響應對話框來了。
歡迎您提供幫助和建議,因爲我是這個領域的新手,我正在學習一些新的東西?
感謝您的支持。我正在將我的代碼從線程更改爲從後臺獲取持續位置更新的服務。 – GaurangDhorda
@GaurangDhorda,不客氣!如果您發現它有幫助,請考慮接受答案。 – Egor