此刻我正在尝试做一些“开始安卓游戏”的书籍任务。
所以,这是我的“设置”类代码,它假设从我的应用程序读取和写入一些信息。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import com.book.framework.FileIO;
public class Settings {
public static boolean soundEnabled = true;
public static int Monsters = 0;
public static int Ores = 0;
public static int maxLevel = 0;
public static void load(FileIO files) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(
files.readFile("vars.txt")));
soundEnabled = Boolean.parseBoolean(in.readLine());
Ores = Integer.parseInt(in.readLine());
Monsters = Integer.parseInt(in.readLine());
maxLevel = Integer.parseInt(in.readLine());
} catch (IOException e) {
} catch (NumberFormatException e) {
} finally {
try {
if (in != null)
in.close();
} catch (IOException e) {
}
}
}
public static void save(FileIO files) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
files.writeFile("vars.txt")));
out.write(Boolean.toString(soundEnabled));
out.write(Integer.toString(Ores));
out.write(Integer.toString(Monsters));
out.write(Integer.toString(maxLevel));
} catch (IOException e) {
} finally {
try {
if (out != null)
out.close();
} catch (IOException e) {
}
}
}
public static void addLevel(int level) {
if(level > maxLevel)
maxLevel = level;
}
}
我在我的应用程序的其他一些类中将值添加到Monsters,Ores和maxLevel值,并且每次更新其中一个变量时我都使用“save”方法。在我开始我的应用程序之后就开始阅读。 现在来问题了。当我使用返回>返回>退出应用程序时,值将被保存并且一切正常。但是,当我按下(并按住)“Home”按钮并以这种方式终止应用程序时,信息(Monsters,Ores和maxLevel)不会保存,实际上它只是默认(0,0,0)。所以,问题是 - 在这种情况下如何保持我的变量不受影响?我觉得我需要稍微改变我的设置类,但不太确定在哪里以及如何。
P.S。最后一种方法无关紧要
感谢您的回复