从后台堆栈弹出活动时保存并恢复片段

时间:2012-10-02 02:11:50

标签: android

当用户按下后退按钮时,如何保存片段的状态,然后在下次加载片段时将其恢复?我尝试了onSaveInstanceState,但是当我回击时它没有被调用,而传递到Bundle的{​​{1}}是onCreate

对于上下文,我有一个标题Activity,当用户按下按钮(例如,“新游戏”)时,它会启动新游戏Activity。第二个(游戏)活动在null中加载XML布局,其中包含自定义onCreate。当用户按下后退按钮时,我想返回标题Activity,但提供“恢复游戏”按钮。为此,我需要为片段保存一些自定义状态数据。

1 个答案:

答案 0 :(得分:1)

默认情况下,当用户按Back

时,不会发生onSaveInstanceState()调用
  

如果用户按下“返回”按钮,则会从堆栈弹出当前活动并且>销毁。堆栈中的先前活动已恢复。当活动被销毁时,>系统不会保留活动的状态。

所以你可以这样做的方式似乎是:(1)使用你自己的实现覆盖活动的onBackPressed()你在哪里(2)保存片段实例。看一下FragmentManager.saveFragmentInstanceState() - 我相信这就是你需要的东西