在Android应用程序中写入/读取和终止

时间:2014-04-01 21:00:30

标签: java android

此刻我正在尝试做一些“开始安卓游戏”的书籍任务。

所以,这是我的“设置”类代码,它假设从我的应用程序读取和写入一些信息。

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。最后一种方法无关紧要

感谢您的回复

0 个答案:

没有答案