2014-11-23 22 views
0

我用我這行代碼:requestlocationupdate minTime不工作

locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER,20000,1,聽衆);

這適用於傑利貝恩設備和較高的。我開始使用線程每20秒啓動一次更新。這種方式是否會對GPS產生影響,因爲它會繼續打開和關閉?

new Thread(new Runnable(){ 
       public void run() { 
        locationmanager.removeUpdates(listener); 
        try { 
         Thread.sleep(20000); 
        } catch (InterruptedException e) { 
        } 
        if(enapled) 
         runOnUiThread(new Runnable() { 
          public void run() { 
           locationmanager.requestLocationUpdates(
             LocationManager.GPS_PROVIDER, 0, 1, listener); 
          } 
         }); 
       } 
      }).start(); 

這個應用程序被設計爲運行很長時間,我擔心離開locationmanager整個運行時間。過了一段時間後,移除偵聽器並再次請求位置是否安全?如果不是,還有其他方法可以解決這個問題嗎?

+0

我不太明白你的問題是什麼在這裏... – yochannah 2014-11-23 18:48:30

+0

是它安全地刪除聽衆並在時間過後再次請求位置。 因爲這個應用程序設計運行很長一段時間 - 幾天。 如果他們是另一種方式? – 2014-11-23 18:58:18

+0

你爲什麼擔心離開它運行。電池? – yochannah 2014-11-23 19:32:33

回答

0

它的安全離開它註冊的,如果你把它存在或一遍遍註冊它,它具有對電池沒有影響。
從我的經驗多次註冊,位置管理器做了很多的問題,隨着時間的推移, 我會做的,而不是你什麼是檢查每兩分鐘,如果在最後一分鐘左右收到最後接收的位置。如果沒有,請再次註冊聽衆。
順便說一句,你這麼長時間需要GPS嗎?
看看其他的位置提供爲好,他們可能只是做電池使用率較低的伎倆
Location Strategies

+0

所以它不會影響這個代碼的設備?我需要它來進行在線跟蹤。 – 2014-11-24 11:45:42

+0

此代碼確實違反了我之前編寫的內容,這意味着它會多次註冊偵聽器。最好只註冊一次,並監視你是否按預期得到了更新。 – 2014-11-24 13:37:23

+0

啊哈,好的,謝謝:)。 – 2014-11-24 14:20:59