0
我有一個線程調用checkUpdate
這個方法裏面:反覆調用方法Android的線程
public void onLocationChanged(Location location)
checkUpdate = new Thread() {
public void run() {
try {
// do some long staff using location variable
} catch (Exception e) {}
handler.sendEmptyMessage(0);
}
};
checkUpdate.start();
的問題是,onLocationChanged()
方法由系統調用,線程完成有時會之前,這將導致不可預知的行爲在我的應用程序。
有沒有辦法不運行線程,如果已經運行或類似的東西?
SOLUTION:
我知道發生了什麼事情,你需要調用locationManager.removeUpdates(locationListener);
,並設置你的破壞活動locationManager=null
,否則即使應用程序被關閉,該服務仍在運行和獲取位置。
它不工作,threadStarted永遠是假的 – Xenione 2012-07-26 19:35:44
我沒有看到有問題的代碼@Xenione。你可以把一些登錄,看看線程是否正在啓動? – Gray 2012-07-26 19:37:38
好的。可能是處理程序有問題,可能因爲我必須在處理程序任務完成時將threadStarted設置爲True。do你知道該怎麼做?謝謝 – Xenione 2012-07-26 19:52:10