这是一个棘手的问题.我有一个应用程序,在后台收集GPS数据(与前台服务).此外,我设置3闹钟,应该在一个小时内运行的帧.所有这一切都是在设备中安装MDM(SOTI,如果它的任何帮助).
好吧,当应用程序在前台时,没有问题,GPS数据被正确收集,警报在必要时会触发。问题是当我锁定设备或屏幕关闭时。通常情况下,它会收集更多的GPS数据,几分钟后,应用程序和前台服务将被杀死,无论如何。
该设备绝对不需要资源,因为它是MDM允许的唯一应用程序,并且没有错误,因为我已经实现了crashlytics,它没有提供任何东西。
作为参考,由于我不能发布太多代码,我按预期启动前台服务(使用startForegroundService),并在服务的onCreate()方法中调用startForeground。此外,我在服务中有一个wakelock,但这根本没有帮助。
闹钟是用alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,startDate,period,pendingIntent)设置的,但是当应用处于后台时,它们不会触发。当我再次启动应用时,它们会重置并触发。
为什么我的应用程序被杀的线索?我使用的设备是华为Y6,如果它的任何帮助.我已经检查了https://dontkillmyapp.com/,并作出了所有的事情,我可以尝试不让我的应用程序被杀,但我失败了.此外,我已经检查了前台服务转储手机的信息和服务被标记为前台服务,因为它应该,优先级为4(我检查的时间),所以它不应该被杀死...
2条答案
按热度按时间njthzxwz1#
当状态转到onStop时,您需要一个广播接收器来重新启动服务。
Never ending service
nqwrtyyt2#
这是一个服务,我使用一些GPS跟踪.重要的是一个服务,以保持运行是一个通知绑定到它.从我所知道的通知是让用户知道在后台运行的服务.
在start命令中,创建具有最高优先级的粘性通知。
希望Kotlin代码是好的: