在Android中,每天在预定义的时间安排GPS位置检查
我有iOS背景,具有中级安卓知识。无论如何,对于这个任务,我需要知道我到底需要做什么。我的应用程序需要检查用户是否在预定义的时间处于或接近预定义的位置。获取用户位置不是问题 我猜是在使用在Android中,每天在预定义的时间安排GPS位置检查,android,gps,android-service,alarmmanager,schedule,Android,Gps,Android Service,Alarmmanager,Schedule,我有iOS背景,具有中级安卓知识。无论如何,对于这个任务,我需要知道我到底需要做什么。我的应用程序需要检查用户是否在预定义的时间处于或接近预定义的位置。获取用户位置不是问题 我猜是在使用AlarmManager、BroadcastReceiver和服务?我没有和这三个人一起工作过 感谢您的帮助。:) 以下是您制作配方所需的配料: 针对您的广播接收器的意图: Intent intent = new Intent(context, YourBroadCastReceiver.class); 由A
AlarmManager
、BroadcastReceiver
和服务
?我没有和这三个人一起工作过
感谢您的帮助。:) 以下是您制作配方所需的配料: 针对您的
广播接收器的意图
:
Intent intent = new Intent(context, YourBroadCastReceiver.class);
由AlarmManager
触发并触发已定义的意图的PendingEvent
:
PendingIntent pIntent = PendingIntent.getBroadcast(context, requestCode, intent, flags);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, pIntent);
定期激活悬挂内容的AlarmManager
:
PendingIntent pIntent = PendingIntent.getBroadcast(context, requestCode, intent, flags);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, triggerAtMillis, intervalMillis, pIntent);
处理事件的BroadCastReceiver
:
@Override
protected void handleReceive(Context context, Intent intent) {
// handle GPS
}
@Martin不需要创建在后台运行的服务?不需要服务,您提出的和我描述的组合非常适合您的目标。因此,如果我是对的,我会在点击“启用”按钮时设置intent、PendingEvent和AlarmManager?此外,是否会在指定时间触发并显示活动?这是正确的。如果不让活动显示,则不会显示该活动。您的BroadCastReceiver
可以在后台工作。您必须要求用户手动激活GPS设置,但由于安全问题,您无法通过代码执行此操作。