Android中公共静态variables的生命周期是什么?

我有一个简单的类来保留一些variables,以在我的游戏活动之间分享它们,例如:

public class TheGlobals { public static boolean IsFullGame = false; } 

现在,当游戏启动时,初始活动是MainMenu,它决定用户是否购买了完整的游戏,并相应地设置variables。 例如,如果用户购买了游戏,则可以

 TheGlobals.IsFullGame = true; 

到现在为止还挺好。 从这里,用户点击“播放”并切换到发生主游戏动作的游戏活动。 在这个第二(游戏)活动中,有几个地方通过访问全局静态variables来检查它是完整/购买的游戏,并相应地启用或禁用某些function。

现在,用户播放并在某个点击中主页button或切换到其他应用程序。 过了一段时间后,用户回到我的游戏,从最近的应用程序启动它,从而打开他们离开的游戏,直接在第二个(游戏)活动,用户愉快地继续玩。

我是否正确地认为,在这一点上,我的全局静态variables的值可以是True或False,取决于进程是否被销毁,或者是否有任何保证,Android将恢复其价值。 我在想,如果这个过程保持活跃,那么价值将保持为真(就像在第一个活动中设定的那样),并且只要这个过程保持活跃,它就会被保留下来。 或者如果进程被销毁,并且用户稍后再回来,并且在第二个(Game)活动中直接打开我的游戏,那么在这种情况下,全局静态variables的值将默认为False(就像它在类中定义的那样级别,没有机会在第一次活动中设置)。

感谢您的任何意见。

Solutions Collecting From Web of "Android中公共静态variables的生命周期是什么?"

我是否正确地认为,在这一点上,我的全局静态variables的值可以是True或False,取决于进程是否被销毁,或者是否有任何保证,Android将恢复其价值。 我在想,如果这个过程保持活跃,那么价值将保持为真(就像在第一个活动中设定的那样),并且只要这个过程保持活跃,它就会被保留下来。 或者如果进程被销毁,并且用户稍后再回来,并且在第二个(Game)活动中直接打开我的游戏,那么在这种情况下,全局静态variables的值将默认为False(就像它在类中定义的那样级别,没有机会在第一次活动中设置)。

是的,你是对的 。 此时进程是Android应用程序进程 。 运行它的应用程序进程仍然对你的variablesTheGlobals.IsFullGame持久。

现在,用户播放并在某个点击中主页button或切换到其他应用程序。 过了一段时间后,用户回到我的游戏,从最近的应用程序启动它,从而打开他们离开的游戏,直接在第二个(游戏)活动,用户愉快地继续玩。

因为您的应用程序在后台任务中可用意味着应用程序进程正在运行,所以您得到正确的值

现在呢,

  1. 如果设备具有低内存问题,并且您的应用程序在后台

简单的Android系统杀死你的应用程序进程保持其他应用程序运行状态,并且你正在获取你的variables的默认值没有保存状态

  1. 如果电池电量不足以及其他特殊情况,哪些设备closures,该怎么办?

只需启动设备,用户就必须从头开始启动应用程序,并且对于variables没有持久状态,它只有默认值。

因此,在这种情况下,应用程序会保持variables值,直到应用程序运行,并在系统上分配了内存空间(设备RAM上的应用程序运行空间)

解:

您必须坚持应用程序variables的值,直到应用程序的生命周期结束,直到应用程序不从设备上卸载为止,那么最好使用SharedPreference来存储您的variables值,并保留持久性,直到您更改应用程序为止。

Afaik整个程序被清除或不清除。 所以,如果用户可以返回到游戏屏幕IsFullGametrue ,或者应用程序已被销毁它的false