Android开发指南1----Activity的急救术

来源:互联网 发布:工业自动化设计软件 编辑:程序博客网 时间:2024/04/28 10:56

Activity在onPause之后就有可能会被Destroy掉, 当用户按后退按钮时如果Activity没有被Destroy, 那它可以很轻松的被恢复回来.

但是如果已经被Destroy掉的Activity如何恢复呢? 这个时候Activity的onCreate方法会重新被调用.

 

可是Activity的状态又要如何恢复呢?

答案就是 onSaveInstanceState(). 在Activity被其他Activity覆盖之前, 这个方法会被调用来保存用户之前的操作状态. 一般情况下你不需要特别处理什么, 这就是为什么看起来Activity好像根本没有被销毁的原因. 默认的情况下ActivityManager会在调用onSaveInstanceState()时备份各个widget的状态, 如CheckBox是否被选中, EditText中的内容等等, 同时在调用onCreate()时恢复这些widget的状态. 当然这些widget一定要定义一个id, 否则系统将无法帮你做这些.

 

当默认的急救术失效时怎么办?

你需要在onSaveInstanceState()时将你需要的状态保存到Bundle中, 当onCreate()时将信息取出并恢复到widget中.

 

小提示:

如何简单的测试你的Activity的恢复能力?

你可以简单的切换横竖屏来查看各个组件是否很好的保存的当前的状态.

 

原创粉丝点击