我想給LocationClient一個兩分鐘的時間來連接,然後調用getLastLocation。最初,我使用Timer(和TimerTask)實現了這一功能,但由於Timers在sleepmode中不工作,我想將其轉換爲AlarmManager。不過,考慮到AlarmManager會調用另一個類,我對於如何做到這一點感到有些困惑,而我想保持在同一個類中,只是延遲了兩分鐘的時間。AlarmManager調用同一類的函數
這是它如何看起來與計時器。
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask() {
@Override
public void run() {
if(checkIfGooglePlay() && checkTime()) {
getPostLocation();
stopSelf();
mLocationClient.disconnect();
}
}
}, TWO_MINUTES);
AlarmManager可以使用pendingIntent調用相同的類 –
因此,我可以調用mLocationClient.connect(),然後創建一個PendingIntent,並在該類上設置兩分鐘的AlarmManager? – NumenorForLife
我不知道你的正確要求,但是我知道了什麼程度,你應該使用一個Service類來完成這個任務。可以使用AlarmManager類或以正常方式喚醒,使用界面與您的活動中的服務進行通信... –