Onstop中的方法在Android中无法正常执行

时间:2017-07-07 08:33:12

标签: android json save

我编写了一个将一些数据保存在JSON文件中的游戏。我想在退出游戏之前保存玩家的数据。

在这个论坛上的许多主题中都读到,如果我在onStop()方法中这样做会更好,所以这样做:

我写了一个类,用JSON文件保存玩家游戏并在onStop()方法上调用它:

@Override
  protected void onStop() {
    super.onStop();
    SaveState.saveState(getApplicationContext());

}

但是,在日志中我们可以看到该方法在循环结束之前被终止。

我尝试在任务中设置方法,但它是一样的。

现在我不知道该怎么做!

另一个类中的方法如下所示:

for (int i = 0; i < GlobalVar.Done.size(); i++) {
    if (GlobalVar.Done.get(i)) {
        SaveJson.changejson(context, "savegame.json", Lvl, GlobalVar.LvlId.get(i), "Done", true);
        Log.i(SAV, "Saving done true : " + i + " id : " + GlobalVar.LvlId.get(i) + " Boolean : " + true);
    } else if (!GlobalVar.Done.get(i)) {

        StringBuilder sb0 = new StringBuilder(GlobalVar.TabStaterep[i].size());
        for (int c = 0; c < GlobalVar.TabStaterep[i].size(); c++) {
            sb0.append(GlobalVar.TabStaterep[i].get(c));

        }
        String str0 = sb0.toString();

        StringBuilder sb1 = new StringBuilder(GlobalVar.TabStateClav[i].size());
        for (int c = 0; c < GlobalVar.TabStateClav[i].size(); c++) {
            sb1.append(GlobalVar.TabStateClav[i].get(c));

        }

        String str1 = sb1.toString();

        SaveJson.changejson(context, "savegame.json", Lvl, GlobalVar.LvlId.get(i), "Rep", str0);
        Log.i(SAV, "Saving rep : " + i + " id : " + GlobalVar.LvlId.get(i) + " Rep : " + str0);
        SaveJson.changejson(context, "savegame.json", Lvl, GlobalVar.LvlId.get(i), "Keyboard", str1);
        Log.i(SAV, "Saving keyboard : " + i + " id : " + GlobalVar.LvlId.get(i) + " Keyboard : " + str1);
        SaveJson.changejson(context, "savegame.json", Lvl, GlobalVar.LvlId.get(i), "Indice3", GlobalVar.Tabindice3.get(i));
        Log.i(SAV, "Saving indice 3 : " + i + " id : " + GlobalVar.LvlId.get(i) + " Indice3 : " + GlobalVar.Tabindice3.get(i));
        SaveJson.changejson(context, "savegame.json", Lvl, GlobalVar.LvlId.get(i), "Done", false);
        Log.i(SAV, "Saving done : " + i + " id : " + GlobalVar.LvlId.get(i) + " Done : " + false);
    }
}

0 个答案:

没有答案