我正在制作游戏并使用 sharedPreferences 为玩家保存数据。我现在设置它的方式是,每次加载主应用程序(第一页)时,都会加载它之前保存的旧数据。所以,想象一个玩家有 100 美元,然后他们退出了应用程序。再次打开应用程序后,将加载此数据并且一切正常。然而,问题在于,如果玩家的钱在另一个活动中发生了变化,我现在设置的方式是,只要玩家导航回到主要活动,就会加载数据。因此,如果玩家在主要活动中有 100 美元,则此信息每隔几秒就会在主要活动中保存一次。如果玩家在第二个活动上花费 50 美元,当他们返回主活动时,由于主活动的最后一次保存数据是 100 美元,它将加载 100 美元。这是一个问题,解决它的方法是仅在应用程序打开时加载数据。所以就像我不想在玩家每次导航到主要活动时加载数据,而是只在他们打开应用程序时加载数据。我需要一个简单的 if() 布尔语句来执行此操作,但我不确定我需要的语句是什么。
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
存储一个布尔值sharedPreferences并检查它是否存在,或者在创建活动时检查它是否为 false/true,例如存储一个值为"hasLoaded"or 的true值false。检查此值onCreate,然后相应地执行您的逻辑。
或者,
在您的 mainActivity 中创建一个静态变量hasLoaded,然后在 onCreate 中,执行您想要执行的所有操作,然后将其更改为 true。
static boolean hasLoaded = false;
if(!hasLoaded){
//all your logic here
hasLoaded = true;
}
注意: 将其存储在sharedPrefs将确保您的初始化只会对应用程序的所有使用发生一次,而将其存储在静态变量中将确保它只在应用程序的每次运行中发生一次
添加回答
举报
0/150
提交
取消