Lev*_*von 9 java static android global-variables android-activity
我有一个简单的类来保留一些变量来在我的游戏中的活动之间共享它们,例如:
public class TheGlobals {
public static boolean IsFullGame = false;
}
Run Code Online (Sandbox Code Playgroud)
现在,当游戏启动时,初始活动是MainMenu,它确定用户是否购买了完整游戏,并相应地设置变量.例如,在用户购买游戏的情况下,它会这样做
TheGlobals.IsFullGame = true;
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.从这里,用户单击"播放"并切换到主要游戏操作发生的游戏活动.在第二个(游戏)活动中,有几个地方通过访问全局静态变量检查是否是完整/购买的游戏,并相应地启用或禁用某些功能.
现在,用户播放并在某些时候点击主页按钮或切换到其他应用程序.一段时间后,用户回到我的游戏,从最近的应用程序启动它,打开他们离开的游戏,直接在第二个(游戏)活动中,用户愉快地继续玩.
我是否正确地假设在这一点上,我的全局静态变量的值可以是True或False,这取决于进程是否被销毁,或者是否保证Android将恢复其值.我想如果进程保持活动状态,那么值将保持为True(因为它是在第一个活动中设置的)并且只要进程保持活动就会保留; 或者如果进程被销毁,用户稍后再回来,并在第二个(Game)活动中直接打开我的游戏,那么全局静态变量的值在这种情况下默认为False(就像它在类上定义的那样)级别,并且没有机会被设置在第一个活动中).
谢谢你的任何评论.
我是否正确地假设在这一点上,我的全局静态变量的值可以是True或False,这取决于进程是否被销毁,或者是否保证Android将恢复其值.我想如果进程保持活动状态,那么值将保持为True(因为它是在第一个活动中设置的)并且只要进程保持活动就会保留; 或者如果进程被销毁,用户稍后再回来,并在第二个(Game)活动中直接打开我的游戏,那么全局静态变量的值在这种情况下默认为False(就像它在类上定义的那样)级别,并且没有机会被设置在第一个活动中).
是的,你是对的.此时,进程是Android Application Process.运行它的应用程序进程仍然对您的变量具有持久性TheGlobals.IsFullGame.
现在,用户播放并在某些时候点击主页按钮或切换到其他应用程序.一段时间后,用户回到我的游戏,从最近的应用程序启动它,打开他们离开的游戏,直接在第二个(游戏)活动中,用户愉快地继续玩.
因为您的应用程序在后台任务中可用意味着应用程序进程正在运行,因此您获得了正确
那怎么样,
简单的Android系统会终止您的应用程序进程以保持其他应用程序运行状态,并且您将获得变量的默认值而不保留任何状态
只需启动设备,用户必须从开始启动应用程序,并且没有变量的持久状态,它只有默认值.
因此,在这种情况下,您的应用程序会保持变量值,直到您的应用程序运行并且它已在系统上分配了内存空间(应用程序在设备RAM上运行
解:
您必须持久保存应用程序变量的值,直到应用程序的生命周期意味着应用程序未从设备卸载,因此最好使用SharedPreference存储您的变量值,这些变量值将保持持久性,直到您通过应用程序进行更改.
| 归档时间: |
|
| 查看次数: |
2758 次 |
| 最近记录: |