在打盹模式下定期跟踪用户

时间:2017-10-15 06:31:18

标签: android alarmmanager android-doze android-doze-and-standby

我想跟踪特定时段和天数的用户。我每2分钟启动一次报警管理器(我从服务器获得定期时间,这在我的应用程序中是动态的)并尝试获取位置大约一分钟,之后我停止获取位置并保存在DB上的位置。无论如何,这种方法运行得很好,但在api级别23及以上,我的打瞌睡和待机模式的应用程序运行不好,并且在特定时间内不会调用警报!我使用setExactAndAllowWhileIdle方法用于api等级23及以上,但效果不佳。

文件说,我不能在打盹和待机模式下使用更多警报。 我的问题是,如何在Android 6及以上版本中跟踪用户?

1 个答案:

答案 0 :(得分:0)

在打盹中使用闹钟时,请使用setAlarmClock()代替set(),因为它是专为AlarmClocks设计的,因此它甚至可以在打瞌睡中运行。

或者,

你听说过Firebase-job-dispatcher吗?

  

Firebase JobDispatcher是一个提供API的开源库   类似于Android平台中的JobScheduler。火力地堡   JobDispatcher充当应用程序的JobScheduler兼容层   定位Android版本低于5.0(API级别21)。

     

Firebase JobDispatcher支持将Google Play服务用作   调度(运行)作业的实现,但库也   允许您定义和使用其他实现:例如,您   可能决定使用JobScheduler或编写自己的自定义代码。   由于这种多功能性,我们建议您使用此Firebase   如果您的应用针对的Android版本低于5.0,则为JobDispatcher   (API级别21)。

你应该去做。他们也有很好的配置技术。