android+4.4.2+横屏,Android 横竖屏和布局问题

在这里我做了一个小test,之前看过关于这方面的东西,到后来我才真正的遇到项目的时候,不得已才要去真正的熟悉里面的流程。

这里我贴测试源码:

TestActivity.java

package cn.com.hrmdemo;

import Android.app.Activity;

import android.content.res.Configuration;

import android.os.Bundle;

import android.widget.Toast;

public class TestActivity extends Activity {

@Override

protected void onCreate(Bundle arg0) {

System.out.println("------ TestActivity onCreate------");

Toast.makeText(this, "onCreate。。。", Toast.LENGTH_SHORT).show();

super.onCreate(arg0);

setContentView(R.layout.test_linearlayout);

}

@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

System.out.println("------ TestActivity onRestoreInstanceState------");

Toast.makeText(this, "onRestoreInstanceState。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onRestoreInstanceState(savedInstanceState);

}

@Override

protected void onStart() {

System.out.println("------ TestActivity onStart------");

Toast.makeText(this, "onStart。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onStart();

}

@Override

protected void onRestart() {

System.out.println("------ TestActivity onRestart------");

Toast.makeText(this, "onRestart。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onRestart();

}

@Override

protected void onResume() {

System.out.println("------ TestActivity onResume------");

Toast.makeText(this, "onResume。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onResume();

}

@Override

protected void onSaveInstanceState(Bundle outState) {

System.out.println("------ TestActivity onSaveInstanceState------");

Toast.makeText(this, "onSaveInstanceState。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onSaveInstanceState(outState);

}

@Override

protected void onPause() {

System.out.println("------ TestActivity onPause------");

Toast.makeText(this, "onPause。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onPause();

}

@Override

protected void onStop() {

System.out.println("------ TestActivity onStop------");

Toast.makeText(this, "onStop。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onStop();

}

@Override

protected void onDestroy() {

System.out.println("------ TestActivity onDestroy------");

Toast.makeText(this, "onDestroy。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onDestroy();

}

@Override

public void onConfigurationChanged(Configuration newConfig) {

System.out.println("------ TestActivity onConfigurationChanged------");

Toast.makeText(this, "屏幕转变了。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onConfigurationChanged(newConfig);

}

}

------------------------------------------------------上面是源码----------------------------------------------------------

下面看看demo的配置和运行的效果是怎样

这个横竖屏的配置主要是在AndroidManiFest.xml,就是Android App 的清单文件:

android:configChanges="想要配置的方式"

>

在你的activity 里面配置你的横竖屏切换方式

1). 什么都不做配置的情况下

a.正常情况下:

07-24 08:43:59.519: I/System.out(18726): ------ TestActivity onCreate------

07-24 08:43:59.609: I/System.out(18726): ------ TestActivity onStart------

07-24 08:43:59.619: I/System.out(18726): ------ TestActivity onResume------

b.切换横屏情况下:

07-24 08:51:01.359: I/System.out(18936): ------ TestActivity onPause------

07-24 08:51:01.379: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:51:01.389: I/System.out(18936): ------ TestActivity onStop------

07-24 08:51:01.399: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:51:01.429: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5bb4d000 size:4608000 offset:3072000

07-24 08:51:01.429: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c8c5000 size:16531456 offset:14995456

07-24 08:51:01.449: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:51:01.579: I/System.out(18936): ------ TestActivity onStart------

07-24 08:51:01.579: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:51:01.599: I/System.out(18936): ------ TestActivity onResume------

c.再切换回竖屏的情况下:

07-24 08:51:42.669: I/System.out(18936): ------ TestActivity onPause------

07-24 08:51:42.689: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:51:42.699: I/System.out(18936): ------ TestActivity onStop------

07-24 08:51:42.729: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:51:42.759: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c8c5000 size:4608000 offset:3072000

07-24 08:51:42.759: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5cd2a000 size:10797056 offset:9261056

07-24 08:51:42.789: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:51:42.859: I/System.out(18936): ------ TestActivity onStart------

07-24 08:51:42.859: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:51:42.879: I/System.out(18936): ------ TestActivity onResume------

2)配置android:configChanges="orientation|keyboardHidden" (4.0以前)

a.正常情况下:

07-24 08:54:05.059: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:05.199: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:05.219: I/System.out(18936): ------ TestActivity onResume------

b.切换横屏情况下:

07-24 08:54:25.909: I/System.out(18936): ------ TestActivity onPause------

07-24 08:54:25.919: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:54:25.929: I/System.out(18936): ------ TestActivity onStop------

07-24 08:54:25.949: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:54:25.979: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c7c5000 size:19603456 offset:18067456

07-24 08:54:25.979: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5da77000 size:4608000 offset:3072000

07-24 08:54:26.019: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:26.069: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:26.079: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:54:26.079: I/System.out(18936): ------ TestActivity onResume------

c.再切换回竖屏的情况下:

07-24 08:55:02.099: I/System.out(18936): ------ TestActivity onPause------

07-24 08:55:02.109: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:55:02.119: I/System.out(18936): ------ TestActivity onStop------

07-24 08:55:02.129: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:55:02.139: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c7c5000 size:4608000 offset:3072000

07-24 08:55:02.139: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5cc30000 size:9216000 offset:7680000

07-24 08:55:02.179: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:55:02.249: I/System.out(18936): ------ TestActivity onStart------

07-24 08:55:02.289: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:55:02.309: I/System.out(18936): ------ TestActivity onResume------

发觉上面的结果是跟网上的朋友说的不是一样的,原来是有区别的。

到后来去网上搜索了一下资料发觉,到了。4.0以后。要加上这样的配置才会使Activity的生命周期不会重新被调用

3)配置android:configChanges="keyboardHidden|orientation|screenSize" (4.0以后)

a.正常情况下:

07-24 08:54:05.059: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:05.199: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:05.219: I/System.out(18936): ------ TestActivity onResume------

b.切换横屏情况下:

07-24 09:08:21.639: I/System.out(19533): ------ TestActivity onConfigurationChanged------

c.再切换回竖屏的情况下:

07-24 09:08:21.639: I/System.out(19533): ------ TestActivity onConfigurationChanged-----

总结:要想Activity在横竖屏切换的时候不重新加载生命周期的重要方法,一定要加上配置

4.0之前

android:configChanges="orientation|keyboardHidden"

>

4.0之后

android:configChanges="keyboardHidden|orientation|screenSize"

>

------------------------------------------------------常用设置---------------------------------------------------------

1.如果你的app指定要横屏显示的话

android:screenOrientation="portrait"

>

2.如果你的app指定要竖屏显示的话

android:screenOrientation="landscape"

>

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细) http://www.linuxidc.com/Linux/2013-06/85303.htm

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Silverlight 3 全系列开发工具发布

Silverlight 3 全系列开发工具发布Expression Studio 3Make your vision real with the four professional tools in Microsoft Expression Studio 3. Design for standards-based web sites, rich desktop experiences or Silverlight. Includes Expression Blend™ SketchFl…

8 线性表-循环队列-顺序存储

这几天犹豫了一下要不要上机实现数据结构的代码 一轮复习已经结束了 第二次看还是觉得光看书实在太无感了 于是决定来上机 顺便加深印象 即使考不上 记录一些基础的知识 以后找工作也有用…… 好 就这样决定咧!不能偷懒! 1、循环队列: 实际上…

Android九点阵手势识别,能量黑科技模块八-九:两路按键颜色手势魔块

8. 两路按键魔块模块一共有两路硅胶按键,可以检测按键是否按下。当按键按下时,对应按键背后的红色LED会亮,并且返回触发信号,按键按下事件为真。另外按键键帽上可安装乐高十字插销。8.1. 详细介绍8.2. 参数介绍支持电压&#xff1…

RC和RR级别下的InnoDB快照读有什么不同

首先简介mysql四种隔离级别: 未提交读(READ UNCOMMITED)脏读 已提交读 (READ COMMITED)简称(RC) 不可重复读 可重复读(REPEATABLE READ)简称(RR ) 可串行化&#xff…

[新手及懒人适用]轻松恢复误Ghost的硬盘

首先感谢51CTO有这么好的网络平台,很荣幸本周成为推荐博客。在高兴的同时,倍感压力,毕竟,51CTO看得见的看不见的大牛太多,而自己需要完善的东西还太多太多............好在,我会坚持自己最初在51CTO写博的初…

HTML练习4制作京东登录页,day4 CSS属性和京东登录

1、盒子练习.div1{background-color: darkcyan;width: 100px;height: 100px;margin-left: 20px;margin-top: 20px;/*float: left;*/text-indent: 4em;}.f1{text-indent: 2em;}按时发达复活节啊奥斯卡房间里卡就分手了空间撒 阿发阿发阿发艾弗森adhfhkash发货咖啡来看哈反抗咯说…

ASP.NET MVC 1.0 + spring.net 1.2.0.20288 + NHibernate 2.0.1.4000整合笔记(三)——NHibernate配置...

1、在CMS.App新增XML配置文件web_nhibernate.xml并设置为“嵌入的资源”2、在Web.config中<spring> -> <resource>加入配置&#xff1a;<resource uri"assembly://CMS.App/CMS.App/web_nhibernate.xml"/>3、web_nhibernate.xml中的代码&#xf…

html网页加密最终版,【原】记一次加密网页html的研究

某次web编程,思考着辛辛苦苦编写的web别人 右键查看源码不就一目了然了&#xff1f;当然有些人会把script写入外部js引入&#xff0c;但也只是增加了查看源码的步骤。我就想把整个页面html都加密下&#xff0c;只是右键查看时&#xff0c;看不出代码。那么是否可行&#xff1f;…

修改hosts 流畅使用coursera

以管理员权限打开 C盘 -> Windows-> System32 -> drives -> etc -> hosts文件 在hosts文件最后写入  52.84.246.72 d3c33hcgiwev3.cloudfront.net 转载于:https://www.cnblogs.com/yezhaodan/p/7479251.html

html转excel有问题,html转excel

在工作中时常会遇到转换的问题&#xff0c;比如在浏览网站的时候看到一个不错的表格&#xff0c;但这个表格是网页上面的&#xff0c;该网站又不提供下载&#xff0c;这个时候该如何将这个表格下载下来&#xff0c;并且完整的将其转换到Excel中呢?下面8844就为你介绍如何将Htm…

[跟我学UML] UML中的对象图

缩略语UIS UML Infrastructure Specification UML基础结构规范UML Unifed Modeling Language 统一建模语言USS UML Superstructure Specification UML上层结构规范参考资料《UML Infrastructure Specification, v2.2》《UML Superstructure Specifica…

计算机无法安装hp网络打印机,安装HP网络打印机步骤

打印机在连接上网线以后会通过路由器的DHCP服务自动设置一个IP&#xff0c;但是此IP不一定与你的计算机的IP处在同一个IP段(同段IP为192.168.0.***&#xff0c;即前三位相同(不一定为192.168.0)&#xff0c;只有最后一位不同)&#xff0c;IP不在同一段是无法连接的。此时应手动…

VTP (vlan trunking protocol)

VTP&#xff08;vlan trunking protocol&#xff09;vlan中继协议&#xff0c;是一个二层协议&#xff0c;主要用于在一个vtp域内同步vlan信息&#xff08;vlan的添加、删除、重命名&#xff09;。所谓vtp域&#xff0c;就是配置了相同vtp域名的所有连接在一起的交换机组成的网…