簡體   English   中英

Android make方法每X秒運行一次(涉及gps和服務器調用)

[英]Android make method run every X seconds (involves gps and server call)

我有一個利基應用程序,需要每隔幾秒發送一個服務器的位置。 (不要擔心手機的電池壽命)。 我如何每隔幾秒鍾創建一個線程或某個東西? 我有一個gpslistener,但其子類的名稱是"onlocationchanged" ,似乎只想提供信息,如果位置發生變化,我需要每次都發送到服務器的更新位置,但是我定義的間隔

我該怎么做?

洞察力贊賞

將其放在onCreate服務中。

  mTimer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
           // What you want to do goes here
         }
    }, 0, REFRESH_TIME);

REFRESH_TIMErun重復自身的頻率或時間(以毫秒為單位)。

你不能只是向android詢問當前的位置。 GPS需要一些時間,可能無法使用。 這是在此規定

你可以做的是使用像user500865提到的計時器,然后請求像這樣的最后一個已知位置

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 1, this);
Location l = null;
l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

如果新位置不同或相同,您可以跟蹤最后位置並執行一些邏輯。

requestLocationUpdates方法具有以下參數:

minTime - 通知的最小時間間隔,以毫秒為單位。 此字段僅用作節省電量的提示,位置更新之間的實際時間可能大於或小於此值。

minDistance - 通知的最小距離間隔,以米為單位

使用這些來自定義您希望獲得位置更新的頻率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM