从最近的应用程序列表中选择应用程序 - 行为不一致

问题描述:

我有一个应用程序使用运动传感器无限期地监视用户。有时候监测将会是5分钟,有时候是4个小时。无论如何,该应用程序将被推到后台,但需要保持运行。将应用程序放到前台(通过从最近的应用程序列表中选择它)时,95%的时间都按预期工作。其他5%的时间,应用程序重新启动,失去所有记录的数据。我无法弄清楚(1)触发不同行为的原因或(2)如何防止应用程序重新启动。从最近的应用程序列表中选择应用程序 - 行为不一致

如果应用程序重启或不重启,取决于系统在此期间是否终止。这通常会在您的设备需要更多内存供其他应用程序使用时发生,但通常可能随时发生,因此您不应该依赖应用程序继续在后台运行。您可以通过使用内存很小的设备或启动需要大量内存的应用轻松地进行测试。一个游戏。

解决方案: 首先,你应该确保收集到的数据将被永久不退,不仅只要你收集它保存在内存中。例如,您可以将数据存储在本地数据库或Android共享首选项中。通过这样做,您可以稍后在应用程序终止时检索数据。 如果您还想确保设备即使在内存不足的情况下继续进行监控,也可以使用前台服务。 (https://developer.android.com/guide/components/services.html#Foreground

+0

谢谢你的明确答案。我会研究你的所有建议,并在适当的时候接受答案。 – seekingStillness