Android kill the save file
The game save the data in OnApplicationPause event. It takes about 2 seconds to sarialize and to save the data. If I kill the game process in a task manager while the data is saving, the save file will be incorrect. And the game progress will be lost. I save data like this:
public virtual void Save()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(FileName(), FileMode.OpenOrCreate, FileAccess.Write);
bf.Serialize(file, this);
file.Close();
}
Can I lock the game in a memory while the data is saving? Or can I save data faster?
Answer by Landern · Apr 28, 2017 at 04:17 PM
You will want to add your save to OnApplicationQuit, as for speed, it's not clear what you're parsing out/serializing to disk/storage. If the host system, regardless of Windows/osx/etc, if the ability to terminate an application is used it's typically not graceful and the host system literally just kills the process. You might find serializing to Json(depending on the implementation) faster. The only thing you can do is test it as it applies to your objects you're serializing and mileage will vary. The System.Diagnostics namespace has a stopwatch class. Use this to start the stopwatch before you serialize and stop. Check the elapsed time and output it to the console through Debug.Log. Do this for different serialization types if applicable to your objects.
thanks for the advice. Does OnApplicationQuit work in Android? When I kill the process in the task manager, it doesn't trigger.
Answer by jemonsuarez · Aug 10, 2017 at 07:41 AM
You have two ways (I think):
Save your game data in separate files, so you can save chunks of data (that should be faster) just when you need to save, not only when closing the application.
Add a loader screen when saving your huge file until it ends, requesting the player to "Do not switch off", so if it fails is not your fault.
Best regards.
Your answer

Follow this Question
Related Questions
SerializationException errors!! & IOException. BinaryFormatter problems 1 Answer
Save and Load Problem, Dont quite understand. 1 Answer
Saving Game Data to iOS Device 1 Answer
Serialiazing/Deserializing list of custom class: Could not find type 1 Answer
"SerializationException: Unexpected binary element: 0" on Deserialization of struct 0 Answers