我想每 5 分钟获取一次用户位置并显示为 Toast
。哪种方法最好? 服务
还是IntentService
?我想通过单击按钮启动和停止服务。怎么做?
最佳答案
使用报警服务触发位置服务,将位置保存在数据库表中
public static void setAlarmTimely(Context context) {
AlarmManager alarmMgr;
PendingIntent alarmIntent;
alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(IntentConstants.ALARM_INTENT, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK);
alarmIntent = PendingIntent
.getBroadcast(context, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK, intent, 0);
alarmMgr.cancel(alarmIntent);
Calendar calendar = Calendar.getInstance();
LOGD(TAG, time + " ");
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + locationCaptureTime * 60 * 1000,
5 * 60 * 1000, alarmIntent);
}
点击按钮取消闹钟
AlarmManager alarmMgr;
PendingIntent alarmIntent;
LOGD(TAG, "cancelling location update");
alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(IntentConstants.ALARM_INTENT, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK);
alarmIntent = PendingIntent
.getBroadcast(context, IntentConstants.INTENT_REQUEST_CODE_LOCATION_TRACK, intent, 0);
alarmMgr.cancel(alarmIntent);
关于android - 如何使用 Android 中的后台服务每 5 分钟获取一次设备位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38139125/