如果我旋转屏幕,游戏状态会得到妥善保存。但是,如果我关闭屏幕并稍后返回游戏,有时我会失去游戏状态并获得新游戏。因此,我想知道当系统决定杀死一个恢复内存的进程时,是否会调用Fragment.onSaveInstanceState。另外,在Fragment.onSaveInstanceState中保存到Bundle中的东西的生命周期是多少?
顺便说一下,在开发过程中是否有容易测试这样的情况?等待一两天让系统杀死它会非常低效。
感谢您帮助我!
答案 0 :(得分:0)
I wonder if Fragment.onSaveInstanceState is called at all when the system decides to kill a process
是的。它被称为。
我认为你的问题就在这里。来自文件:
活动与活动之间生命周期中最显着的差异 片段是如何将其存储在其各自的后栈中。一个 活动被放置在由其管理的活动的后台 系统默认停止时(以便用户可以 使用“后退”按钮导航回它,如任务和中所述 返回堆栈)。但是,片段被放置在托管的后栈中 仅当您明确请求时才由主机活动 通过在事务期间调用addToBackStack()来保存实例 删除片段。
不确定这是否可以解决您的问题,但我认为您在编写游戏代码时应牢记这一点。