0

我的应用程序:我正在开发基于位置的服务,用于跟踪销售人员。场景是XYZ想要跟踪他的销售人员的人,他将设置获得位置更新的时间和距离间隔,此后他将把手机移交给销售人员,应用程序应该不断运行和跟踪GPS。

问题:我几乎完成了这个项目,但我想永远运行这个应用程序来跟踪,我通过 GPS 执行此操作,当我在设置时间和距离后最小化应用程序时,我的应用程序将通过 android OS 关闭,但当它在 FOREGROUND它完美地工作。

请建议我对此的可能解决方案是什么。

4

3 回答 3

1

首先,您想在Service中而不是在 Activity 本身中进行跟踪,因此即使用户没有与之交互,应用程序也会执行此操作。

然后AlarmManager就是您要寻找的。您可以安排在特定时间调用 Intent。因此,您可以检查您的服务是否仍在运行,如果没有重新启动它以再次开始跟踪。

看看这个应用程序中的UpdateService

 Intent i = new Intent(UPDATE_ACTION);
 PendingIntent alarmManagerPendingIntent = PendingIntent.getBroadcast(this, 0, i, 0);

 mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime(), //Start now
                10*60*1000, //every 10 minutes
                alarmManagerPendingIntent);
于 2013-02-16T05:31:32.630 回答
0

除了常规应用程序之外,您还需要使用服务。即使应用程序关闭,服务也可以运行。您不能“永远”运行服务,此外,您始终可以手动停止服务。为了使服务能够存活更长时间,它必须是前台服务 - 更多信息:在前台运行服务

于 2013-02-16T05:33:59.923 回答
0

最简单的方法是

@Override
public void onDestroy() {
    Intent serviceIntent = new Intent(getApplicationContext(), UpdateLocationService.class);
    getApplicationContext().startService(serviceIntent);
}
于 2015-06-08T15:31:36.260 回答