我在市场上有一个将传感器数据存储到 txt 文件的应用程序,我通过将传感器值保存到 arraylist 并在会话结束时将文件写入 txt 文件来做到这一点。客户想要一个可以运行一个多小时的应用程序,我尝试运行我的应用程序一个小时,但它显然崩溃了。
我应该不断地将传感器数据写入 txt 文件吗?还是应该每隔几分钟将arraylist中的数据写入txt文件,然后清除arraylist?
Out of memory arraylist 导致崩溃
我在市场上有一个将传感器数据存储到 txt 文件的应用程序,我通过将传感器值保存到 arraylist 并在会话结束时将文件写入 txt 文件来做到这一点。客户想要一个可以运行一个多小时的应用程序,我尝试运行我的应用程序一个小时,但它显然崩溃了。
我应该不断地将传感器数据写入 txt 文件吗?还是应该每隔几分钟将arraylist中的数据写入txt文件,然后清除arraylist?
Out of memory arraylist 导致崩溃
简单的方法是将数据实时存储在 sqlite 上,然后使用简单的过滤器导出或显示数据。
如果您不需要向用户显示传感器数据,则可以在收到时直接编写。考虑为此使用BufferedWriter 。
如果您确实需要在您的应用程序中访问最近的 n 个样本,请考虑基于年龄的缓存,其中传感器将数据存储在缓存中,并在缓存中已有 n 个值时添加一个新值会导致最旧的值被删除并传递给作家。