2011-02-07 66 views
1

中使用計時器我正在開發一個應用程序,並且我正在使用一項服務,每隔10分鐘通過GPS跟蹤位置。但是,當我把位置監聽器放在一個計時器任務中時,它會拋出一個異常:Track Gps每隔10分鐘在android

無法將代碼放入未調用looper.prepare()的線程中。

有沒有人有任何關於這個問題的見解?

回答

0

這種方法很容易,可以更新UI線程:

 new CountdownTimer(30000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
    } 

    public void onFinish() { 
     mTextField.setText("done!"); 
    } 
}.start(); 
1

你不必爲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();