Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,每天在预定义的时间安排GPS位置检查_Android_Gps_Android Service_Alarmmanager_Schedule - Fatal编程技术网

在Android中,每天在预定义的时间安排GPS位置检查

在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

我有iOS背景,具有中级安卓知识。无论如何,对于这个任务,我需要知道我到底需要做什么。我的应用程序需要检查用户是否在预定义的时间处于或接近预定义的位置。获取用户位置不是问题

我猜是在使用
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设置,但由于安全问题,您无法通过代码执行此操作。