[英]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_TIME
是run
重復自身的頻率或時間(以毫秒為單位)。
你不能只是向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.