`
javawebsoa
  • 浏览: 408114 次
社区版块
存档分类
最新评论

Android 程式开发:(八)处理屏幕方向的变化 —— 8.1Activity状态的改变

 
阅读更多

目前看来,我们已经看到了,可以使用两种方法去适应屏幕方向的改变。现在,让我们看以下,当屏幕方向改变的时候,Activity状态的改变。

1、创建一个工程:Orientations。


2、main.xml文件。

3、OrentationsActivity.java。4、调试。

5、在两个EditText中输入一些字符。就像这样。

6、按Ctrl+F11,改变屏幕的方向。下图展示了横屏下的模拟器。注意,第一个EditText的内容仍然是存在的,但第二个EditText已经被清空了。(文章结尾会解释这是为什么)

7、观察LogCat窗口。

从LogCat窗口可以看出,当屏幕方向改变的时候,Activity被销毁了。
随之,它又被重新创建了。理解Activity的这种行为变化是很重要的,因为在屏幕方向改变之前,我们要执行一些必要的操作去保存当前activity的“状态”。例如,你的activity有一些变量,这些变量保存了一些需要被计算的值,这些值需要被保存。对任何activity而言,你都应该在onPause()方法中去保存“状态”,因为onPause()方法是在屏幕方向改变时,出现的第一个方法。接下来的几节教程,将会阐述保存“状态”的几种不同方法。


!!!

另一个需要特别注意的地方:当保存views的activity被销毁的时候,只有那些在activity中被声明的views(通过android:id属性)会保存它们自己的状态。例如,当用户在一个EditText中输入信息的时候,他可能改变屏幕的方向。这时,当activity被重新创建的时候,EditText中的信息就会自动地保存了,并重新显示在EditText中。相反,如果不使用android:id声明EditText,那么activity就不会保存EditText当前的任何内容。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics