我有一個登錄頁面(Android中的一個活動),在此期間我運行異步任務以獲取位置修復。登錄成功後不久,我將該應用程序重定向到另一個活動。我切換到下一個活動後,位置修復程序不可用。這是怎麼一回事呢: -如何異步獲取位置修復程序
代碼: -
oncreate {
...
AsyncTaskClass task;
task.execute();
}
class AsyncTaskClass extends Async... {
doInBackground() {
locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locLstnr);
}
onPostExecute {
//disable listener
startActivity(nextPage);
}
}
我可以看到定位被由應用要求(GPS圖標在任務欄上顯示出來),不過片刻內,該postExecute ()被執行,nextPage加載和定位不被獲取。我如何確保獲得位置修復?換句話說,即使我改變了活動,如何確保在後臺接收位置?
嗨。謝謝回覆。不幸的是我已經有了getLastKnownLocation方法。 嗯,我只想定位一次,所以我沒有在持久化類中使用這個偵聽器。我認爲一個異步類監聽器就足夠了。 – gkris
問題是,當您通過onLocationChanged(位置位置)方法獲取位置時,如何與具有新位置的活動進行通信。由於您不確定將顯示哪些活動,因此需要一些持久性類。您可能能夠註銷on活動中的位置更新,然後註冊下一個活動。我不確定它是否會重新開始整個過程。 –
我使用變量傳遞值。我會嘗試使用持久化類來實現,謝謝你的建議。 – gkris