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

时间:2017-09-18 19:41:19

标签: java android restart

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

1 个答案:

答案 0 :(得分:1)

如果应用程序重新启动,则取决于它是否在此期间被系统终止。如果您的设备需要更多内存用于其他应用程序,通常会在任何时候发生这种情况,因此您不应该依赖您的应用程序继续在后台运行。您可以通过使用内存很少的设备或启动需要大量内存的应用程序来轻松地对此进行测试,例如:一场比赛。

<强>解决方案: 首先,您应确保收集的数据永久保留,并且不仅在收集后立即保存在内存中。例如,您可以将数据存储在本地数据库或Android共享首选项中。通过这样做,如果应用程序终止,您也可以稍后检索数据。 如果您还想确保设备继续监视,即使内存不足,也可以使用前台服务。 (https://developer.android.com/guide/components/services.html#Foreground