【发布时间】:2026-01-06 07:40:02
【问题描述】:
对于 Android 的游戏应用程序,我通过将玩家信息写入文件来保存它。然而,在实际文件写入期间,应用程序可能会被强制终止,结果是用户下次玩游戏时所有信息都丢失了,因为正在写入的保存文件是空的。有没有办法解决?这是我将文件写入存储的方式:
String data = "SAVEDATA";
try {
FileOutputStream outputStream;
File file = new File("file.txt");
outputStream = new FileOutputStream(file, false);
outputStream.write(data.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
如果用户在写入文件时结束进程,则不会向文件写入任何内容,并且之前的所有保存数据都会丢失(因为每次保存都会覆盖文件)。避免这种情况的最佳方法是什么?
编辑:我不是在寻找另一种方法来保存我的数据,我绝对希望将其作为保存在手机存储中的文件。我只想知道当用户在写入保存文件时结束应用程序进程时如何防止数据丢失。
EDIT2:在需要保存游戏数据时启动服务是否是个好主意,这样即使应用程序被终止,服务仍在保存数据时仍在运行,然后服务可以自行结束保存后呢?
【问题讨论】:
-
我在 onPause 上执行此操作,除非用户在执行 onPause 函数时结束应用程序进程,否则它工作得非常好。如果用户结束该过程,则保存文件不会被写入,但已被清除,因此保存数据丢失。