当app在后台时,在给定的时间间隔内将位置保存到服务器。长期运行服务与AlarmManager

时间:2016-07-28 17:53:35

标签: android service alarmmanager

我有一个应用程序,我想在应用程序放在后台时收集用户位置。虽然应用程序在后台,但我希望使用给定的intervall将位置保存到服务器,例如15分钟。最好的方法是什么?我已尝试使用长期运行的服务,但服务的烦人之处在于,如果系统由于缺乏资源而导致应用程序死亡,它就会死亡。我希望应用程序只在用户将其从“最近的应用程序”中删除时才停止收集位置。或力以另一种方式退出。我现在设置了一个触发服务的警报(在执行其定位后停止运行),但是当资源不足时,警报也会被杀死,对吗?

1 个答案:

答案 0 :(得分:0)

您应该查看Service.startCommand()返回的值:

Service.START_STICKY

Service.START_REDELIVER_INTENT

这些常量将允许系统在需要时重新启动服务。如果系统没有重新启动它,那么这是一个非常糟糕的做法:如果系统释放了一些内存,你可能会错过一些RAM来运行你的服务;)