我想在特定時間間隔(比如說30分鐘)後捕獲android設備的當前位置(緯度和經度)..我的課程(或服務??不知道要使用什麼)當設備引導完成時到LocationManagerListener
。什麼是實施這個最好的方法?我們如何在這種情況下使用locationChanged()
方法?在特定時間間隔後獲取當前設備位置
這是我認爲它可以去:
監聽啓動完成的事件,並設置報警服務:
public class OnBootReceiver extends BroadcastReceiver {
private static final int PERIOD=1800000; // 30 minutes
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(context, OnAlarmReceiver.class);
PendingIntent pi=PendingIntent.getBroadcast(context, 0,
i, 0);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+60000,
PERIOD,
pi);
}
}
監聽報警服務,並啓動位置捕獲類或服務:
public class OnAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
WakefulIntentService.acquireStaticLock(context);
context.startService(new Intent(context, locationCapture.class));
or
new locationCapture().classmethod();
}
}
我不知道locationCapture
類應該如何實現。它應該是普通的Java類還是Service類?
任何幫助將不勝感激。
嘿pratik - 非常感謝您的時間。我有幾個疑問 - – Swati
好吧問問題。你有什麼疑問? – Pratik
嘿pratik - 非常感謝您的時間。我有幾個疑問 - 1)你建議這個服務在OnAlarmReceiver類或直接在OnBootReceiver類下啓動(請參考上面的代碼)2)何時和誰將調用此服務的OnDestroy()? 3)爲什麼我們在每隔1秒後在代碼處理程序.postDelayed(GpsFinder,1000)之後得到「最後的位置」... requestLocationUpdates()會在每隔一秒鐘後調用OnLocationChanged(),我們將比較舊位置和當前位置這不夠嗎? – Swati