屏幕方向变化时Activity销毁
来源:互联网 发布:surface rt软件 编辑:程序博客网 时间:2024/04/27 14:38
目前看来,我们已经看到了,可以使用两种方法去适应屏幕方向的改变。现在,让我们看以下,当屏幕方向改变的时候,Activity状态的改变。
1、创建一个工程:Orientations。
2、main.xml文件。
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <!-- 注意,这个EditText使用了android:id属性 -->
- <EditText
- android:id="@+id/txtField1"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- <!-- 注意,这个EditText没有使用android:id属性 -->
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
- public class OrientationsActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Log.d("StateInfo", "onCreate");
- }
- @Override
- public void onStart() {
- Log.d("StateInfo", "onStart");
- super.onStart();
- }
- @Override
- public void onResume() {
- Log.d("StateInfo", "onResume");
- super.onResume();
- }
- @Override
- public void onPause() {
- Log.d("StateInfo", "onPause");
- super.onPause();
- }
- @Override
- public void onStop() {
- Log.d("StateInfo", "onStop");
- super.onStop();
- }
- @Override
- public void onDestroy() {
- Log.d("StateInfo", "onDestroy");
- super.onDestroy();
- }
- @Override
- public void onRestart() {
- Log.d("StateInfo", "onRestart");
- super.onRestart();
- }
- }
5、在两个EditText中输入一些字符。就像这样。
6、按Ctrl+F11,改变屏幕的方向。下图展示了横屏下的模拟器。注意,第一个EditText的内容仍然是存在的,但第二个EditText已经被清空了。(文章结尾会解释这是为什么)
7、观察LogCat窗口。
- 12-15 12:27:20.747: D/StateInfo(557):onCreate
- 12-15 12:27:20.747: D/StateInfo(557):onStart
- 12-15 12:27:20.747: D/StateInfo(557):onResume
- ...
- 12-15 12:39:37.846: D/StateInfo(557):onPause
- 12-15 12:39:37.846: D/StateInfo(557):onStop
- 12-15 12:39:37.866: D/StateInfo(557):onDestroy
- 12-15 12:39:38.206: D/StateInfo(557):onCreate
- 12-15 12:39:38.216: D/StateInfo(557):onStart
- 12-15 12:39:38.257: D/StateInfo(557):onResume
- 12-15 12:39:37.846: D/StateInfo(557):onPause
- 12-15 12:39:37.846: D/StateInfo(557):onStop
- 12-15 12:39:37.866: D/StateInfo(557):onDestroy
- 12-15 12:39:38.206: D/StateInfo(557):onCreate
- 12-15 12:39:38.216: D/StateInfo(557):onStart
- 12-15 12:39:38.257: D/StateInfo(557):onResume
!!!
另一个需要特别注意的地方:当保存views的activity被销毁的时候,只有那些在activity中被声明的views(通过android:id属性)会保存它们自己的状态。例如,当用户在一个EditText中输入信息的时候,他可能改变屏幕的方向。这时,当activity被重新创建的时候,EditText中的信息就会自动地保存了,并重新显示在EditText中。相反,如果不使用android:id声明EditText,那么activity就不会保存EditText当前的任何内容。
0 0
- 屏幕方向变化时Activity销毁
- Android 屏幕切换时不销毁Activity
- Activity运行时的屏幕方向
- Activity之屏幕方向
- 切换屏幕activity不销毁
- iOS屏幕旋转,屏幕自适应方向变化
- Activity在屏幕中的方向
- 根据Activity启动时的屏幕方向,固定Activity的方向
- 屏幕旋转,Activity生命周期变化
- 获取设备屏幕方向变化的代码
- Android旋转屏幕不销毁Activity
- activity屏幕切换时,系统会先销毁activity,然后自动创建。
- 屏幕横竖发生变化时,当前Activity发生的生命周期变化
- Android Activity屏幕旋转方向完全控制
- Android activity在屏幕显示方向设置
- Activity在屏幕当中显示的方向
- 横竖屏切换时不销毁当前activity 和 锁定屏幕
- Android 横竖屏切换时不销毁当前activity 和 锁定屏幕
- 磺兴饺该露露腔山跋刈偻拓赵破热
- myeclipse,源代码更改后,重新编译,执行,仍然执行的是原来的代码。
- 四轴电机控制
- win7安装ubuntu 14以及python环境,不同版本python之间切换(virturalenv)
- Text Reverse
- 屏幕方向变化时Activity销毁
- eclipse图标含义
- Android 开发 Socket 基于UDP通讯
- 开始iOS 7中自动布局教程
- systemctl命令用法
- 分离adapter的getView方法代码,写出个清爽的adapter
- 在向Table、FeatureClass 中添加记录的时候有几种可供选用的插入方
- 堆排序
- Genymotion的使用中文手册