GAM*_*AMA 4 android savestate android-activity
我意识到在SO上已经有很多关于这个话题的问题了.但是,在保存活动状态时,我甚至不知道基本知识.
(请参阅下面的截图)当应用程序启动时,
1)ScrollView项目1,2,3,4可见
2)表包含由于Gainer按钮填充的数据.
如下面的屏幕截图所示,虽然app在PORTRAIT模式下运行,但是
1)向下滚动到ScrollView项目4,5,6
2)按下失败者按钮,因此按钮下方表格中的数据会发生变化.
3)我甚至会动态地改变图形的内容(我还没有完成).
现在,我切换到横向模式等等
1)ScrollView显示ScrollView项目1,2,3,4
2)表显示由于按下Gainer按钮而填充的数据.
3)图形就像我没有改变它(我将在以后改变).
所以当我改变方向时,我的活动正在重新启动.因此,如果用户在一个方向上执行某项任务并且他更改了方向,那么整个进度将会丢失.
我知道我需要保存活动的状态并在方向改变时恢复它.但我不知道从哪里开始和保存什么.
任何帮助都将是生命!

Com*_*are 12
选项#1:覆盖onSaveInstanceState()你的Activity并在提供的内容中提供你想要的任何信息Bundle.您的新活动实例将Bundle在onRestoreInstanceState()(或onCreate())中收到.这是一个示例项目.
选项#2:覆盖onRetainNonConfigurationInstance()你的Activity并返回一些代表你的状态的对象.您的新活动实例可以调用getLastNonConfigurationInstance()以检索该对象,因此新活动可以应用该信息.但是要小心,不要让旧活动在对象中返回一些东西,该对象包含对旧活动的引用(例如,小部件,常规内部类的实例).这是一个示例项目.
选项#3:将此活动转换为片段.setRetainInstance(true);在初始设置期间让片段自行调用.通过a动态地将片段添加到某些活动FragmentTransaction.现在,当配置更改时,片段将保留,因此将保留所有窗口小部件和状态.这是一个过于复杂的示例应用程序,展示了这一点.
这些是当今推荐的三种方法.
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |