Java 如何检查应用程序是否正在打开-Android Studio

Java 如何检查应用程序是否正在打开-Android Studio,java,android,kotlin,sharedpreferences,Java,Android,Kotlin,Sharedpreferences,我正在制作一个游戏,并使用SharedReferences为玩家保存数据。按照我现在的设置方式,每次加载主应用程序(第一页)时,都会加载它之前保存的旧数据。因此,假设一个玩家有100美元,他们退出应用程序。再次打开应用程序后,将加载此数据,一切正常 然而,问题是,如果一个玩家的钱在另一个活动中发生了变化,我现在设置它的方式是,每当一个玩家导航回主活动时,数据都会被加载。因此,如果玩家在主活动上有100美元,则每隔几秒钟就会在主活动上保存此信息。如果玩家在第二个活动上花费50美元,当他们返回主活动

我正在制作一个游戏,并使用SharedReferences为玩家保存数据。按照我现在的设置方式,每次加载主应用程序(第一页)时,都会加载它之前保存的旧数据。因此,假设一个玩家有100美元,他们退出应用程序。再次打开应用程序后,将加载此数据,一切正常

然而,问题是,如果一个玩家的钱在另一个活动中发生了变化,我现在设置它的方式是,每当一个玩家导航回主活动时,数据都会被加载。因此,如果玩家在主活动上有100美元,则每隔几秒钟就会在主活动上保存此信息。如果玩家在第二个活动上花费50美元,当他们返回主活动时,因为主活动最后保存的数据是100美元,它将加载100美元

这是一个问题,解决方法是只在应用程序打开时加载数据。因此,我不想每次玩家导航到主活动时都加载数据,而只想在他们打开应用程序时加载数据。我需要一个简单的if()布尔语句来实现这一点,但我不确定我需要的语句是什么


谢谢

SharedReferences
中存储布尔值,并在创建活动时检查它是否存在或是否为false/true,例如为
“hasLoaded”
存储一个值,该值为
true
false
。在
onCreate
中检查此值,然后执行相应的逻辑

或者

在mainActivity中为
hasload
创建一个静态变量,然后在onCreate中执行所有您想执行的操作,然后将其更改为true

static boolean hasLoaded = false;

if(!hasLoaded){
//all your logic here
hasLoaded = true;
}
注意:
将其存储在
SharedReferences
将确保您的初始化在应用程序的所有使用中只发生一次,而将其存储在静态变量中将确保每次运行应用程序时只发生一次,例如,为
“hasload”
存储一个值,该值为
true
false
。在
onCreate
中检查此值,然后执行相应的逻辑

或者

在mainActivity中为
hasload
创建一个静态变量,然后在onCreate中执行所有您想执行的操作,然后将其更改为true

static boolean hasLoaded = false;

if(!hasLoaded){
//all your logic here
hasLoaded = true;
}
注意:
将其存储在
sharedPrefs
将确保您的初始化在应用程序的所有使用中只发生一次,而将其存储在静态变量中将确保每次运行应用程序时只发生一次像你建议的那样使用静态布尔概念,效果很好,非常感谢!只要堆栈交换允许,我就接受它(必须等待几分钟)!不用担心:D我改变了我建议的顺序,这样更好的建议(在我看来,共享优先权)就在顶部:D静态优先权应该是你的第二选择。我以前从未在android上制作过游戏:D你在进步吗?该死的,你太快了!:)像你建议的那样使用静态布尔概念,效果很好,非常感谢!只要堆栈交换允许,我就接受它(必须等待几分钟)!不用担心:D我改变了我建议的顺序,这样更好的建议(在我看来,共享优先权)就在顶部:D静态建议应该是你的第二个选择我以前从未在android上制作过游戏:D你在进步吗?