中使用計時器我正在開發一個應用程序,並且我正在使用一項服務,每隔10分鐘通過GPS跟蹤位置。但是,當我把位置監聽器放在一個計時器任務中時,它會拋出一個異常:Track Gps每隔10分鐘在android
無法將代碼放入未調用
looper.prepare()
的線程中。
有沒有人有任何關於這個問題的見解?
中使用計時器我正在開發一個應用程序,並且我正在使用一項服務,每隔10分鐘通過GPS跟蹤位置。但是,當我把位置監聽器放在一個計時器任務中時,它會拋出一個異常:Track Gps每隔10分鐘在android
無法將代碼放入未調用
looper.prepare()
的線程中。
有沒有人有任何關於這個問題的見解?
這種方法很容易,可以更新UI線程:
new CountdownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
你不必爲recieving locationUpdate每10分鐘 啓動一個服務,而不是做這樣的事情
mLocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 600000, 0, mLocListener);
這將自動每10分鐘發送一次更新給聽衆
當你得到像Looper這樣的錯誤時。這意味着您不允許從其他主UI工作線程執行某些操作。
你正在運行什麼代碼,並得到這個錯誤。從主UI線程執行代碼。或 在主類中創建一個Handler對象由主線程
Handler mHandler = new Handler();
然後在您的任何其他線程做這樣的事情
new Thread(new Runnable(){ public void run(){
// any of your code
mHandler.post(new Runnable(){public void run(){
// the code giving you error Looper
}});
}}).start();