我正在构建一个基于步骤的游戏,所以我需要能够创建前进和后退按钮。
每个步骤都有一个 ID,它的信息取自 SQLite 数据库。我将在共享首选项中保存maxLevel
最大达到的步骤以及currentStep
当前步骤。现在我想知道如何开始一个新的动作,将某人带到下一步/上一步,而不会过多地堵塞记忆。我知道我可以开始一个新动作并传递如下数据:
final Context mContext=this;
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("count", 2);
editor.commit();
Intent myIntent = new Intent(mContext, PlayGame.class);
mContext.startActivity(myIntent);
现在我主要担心的是内存使用情况。如果我使用它前进 2 次,然后返回 2 次,然后再前进 2 次,它不会创建 6 个活动实例吗?这可能是一个巨大的记忆猪。
所以这里的问题是:
如何实现具有 1 个活动的前进/后退系统,即重新启动并从数据库中检索数据?
有关更多背景信息:该活动是一个 TabHost,它有 4 个选项卡,每个选项卡内部都有一个活动。每个活动都从数据库中检索它需要的数据。因此,我担心内存使用情况。
编辑:
我似乎找到了解决办法。我finish()
在开始新活动之前调用该函数。我相信,这应该有助于避免任何泄漏。我这样想对吗?