繁体   English   中英

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

[英]Save and restore fragment when activity is popped from back stack

当用户按下“后退”按钮时,如何保存片段的状态,然后在下次加载片段时将其还原? 我尝试了onSaveInstanceState ,但是当我回击时它不会被调用,并且传递给onCreateBundlenull

对于上下文,我有一个标题Activity,当用户按下按钮时(例如,“ New game”),该活动将启动一个新游戏Activity。 第二个(游戏)活动在onCreate加载XML布局,该布局由自定义Fragment 当用户按下“后退”按钮时,我想返回标题“活动”,但提供“继续游戏”按钮。 为此,我需要为Fragment保存一些自定义状态数据。

默认情况下,用户按Back时不会发生onSaveInstanceState()调用

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

因此,您似乎可以做到这一点:(1)使用您自己的实现覆盖活动的onBackPressed(),并在其中(2)保存片段实例。 看一看FragmentManager.saveFragmentInstanceState()-我相信这就是您所需要的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM