`
啸笑天
  • 浏览: 3436277 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

横竖屏切换时不销毁当前activity 和 锁定屏幕

阅读更多

首先在Mainifest.xml的Activity元素中加入android:configChanges="orientation|keyboardHidden"属性

<activityandroid:name=".FileBrowser"android:label="@string/app_name"android:configChanges="orientation|keyboardHidden">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

加入这条属性的含义是,应用程序将会处理屏幕方向和键盘状态(推出或合上)信息的改动。但对于其他的设备配置信息的改动则会由Android系统来处理(销毁当前Activity,然后重启一个新的Activity实例)。

那么,现在还需要在java代码的activity子类中加入配置信息改动的处理代码。这个也很简单

/**

* onConfigurationChanged

* the package:android.content.res.Configuration.

* @param newConfig, The new device configuration.

* 当设备配置信息有改动(比如屏幕方向的改变,实体键盘的推开或合上等)时,

* 并且如果此时有activity正在运行,系统会调用这个函数。

* 注意:onConfigurationChanged只会监测应用程序在AnroidMainifest.xml中通过

* android:configChanges="xxxx"指定的配置类型的改动;

* 而对于其他配置的更改,则系统会onDestroy()当前Activity,然后重启一个新的Activity实例。

*/

@Override publicvoid onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig); // 检测屏幕的方向:纵向或横向

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {

 //当前为横屏, 在此处添加额外的处理代码

else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

//当前为竖屏, 在此处添加额外的处理代码

}

 //检测实体键盘的状态:推出或者合上

if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){

//实体键盘处于推出状态,在此处添加额外的处理代码

else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES){

 //实体键盘处于合上状态,在此处添加额外的处理代码

}

}

别忘了在java文件中加上import android.content.res.Configuration

这样就OK了,屏幕方向改变时,应用程序的显示界面也会随着改动,而不是被销毁!

 

 

Activity中还有一属性和屏幕方向有关:

<activity . . . android:screenOrientation=["unspecified" | "user" | "behind" | "landscape" | "portrait" | "sensor" | "nosensor"] . . . </activity>

比如,在Mainifest.xml的Activity元素中增加这么一个属性:

android:screenOrientation="portrait"

则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。

android:screenOrientation="landscape",为横屏显示。

这里提一个小知识,Anroid模拟器中,快捷键"ctrl+F11"可以实现转屏。

 

 

感谢:http://hi.baidu.com/augustus_blog/blog/item/f41ab089462a6c0ac8fc7a04.html

分享到:
评论

相关推荐

    Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法

    本文实例讲述了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法。分享给大家供大家参考,具体如下: 首先在Mainifest.xml的Activity元素中加入android:configChanges=”orientation|keyboardHidden...

    Android 销毁当前的Activity

    如何让Android横竖屏切换时不销毁当前的activity活动

    activity横竖屏切换时销毁的处理

    activity横竖屏切换时重新onCreate的处理。

    Android Activity横竖屏切换生命周期详解

    关于Activity生命周期和横竖屏切换时,生命周期的执行过程,网上有很多文章。但是都写的很模糊,并且不完善。一般的我们去切换屏幕方向都是不希望Activity被重新创建,这时就需要对一些属性进行设置,或者使用代码...

    Android Activity 横竖屏切换的生命周期

    Activity 横竖屏切换时需要回调两个函数 ,所以在此将这个两个函数暂时看成是Activity 横竖屏切换的生命周期的一部分,这两个函数如下 onSaveInstanceState(Bundle outState) :Activity 即将销毁时保存数据 ...

    解决Android手机屏幕横竖屏切换

    怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在AndroidManifest.xml中为Activity设置configChanges属性, application android:icon=@drawable/icon android:label=@string/app_name&gt; &lt;activity ...

    android实现在横竖屏切换时页面信息不被重置的示例分享

    当屏幕转动切换的时候 Android 机制是:销毁当前屏幕的 Activity ,然后重新开启一个新的适应屏幕改变的 Activity 。那么,我们该如何在屏幕切换的时候页面信息不被重置呢? 解决实现:1.在 AnroidMainifest.xml 的 ...

    跳转场景UI不销毁.rar

    unity 跳转场景UI 不销毁 代码简单, 直接拖入摄像机 即可使用。 适合初学者,不喜勿喷,谢谢支持。 有源码案例。

    Android屏幕旋转之横屏竖屏切换的实现

    一种是在工程的代码中定义,这种方式在横竖屏切换时执行的操作是:销毁当前Activity–根据新的屏幕尺寸重建Activity。如果不进行数据存储的操作,在切换的过程中Activity中的数据会丢失。 另一种是在工程的...

    销毁Activity

    其实答案非常简单,只要按一下Back键就可以销毁当前的活动了。不过如果你不想通 过按键的方式,而是希望在程序中通过代码来销毁活动,当然也可以,Activity类提供了一 个finish()方法,我们在活动中调用一下这个方法...

    解决Android横竖屏切换数据丢失问题的方法

    Android横竖屏切换时,当前的Activity会被销毁,然后Activity上面的数据将会全部丢失。 如Listview上面每个item的checkbox,横竖屏切换时,复选框就丢失所有选中信息。 解决方案1:在Androidmanifest.xml的activity...

    Android 向右滑动销毁(finish)Activity

    Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果,项目详情http://blog.csdn.net/xiaanming/article/details/20934541

    android 开发技巧合集

    2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 2.3.3、Service的生命周期 32 2.3.4、判断服务开启状态 33 2.3.5、获取启动...

    应用笔记LAT1212+STM32GUI+TouchGFX+Transition+屏幕切换功能简介

    五个派生类,其中 NoTransition 是最基本的派生类,它没有任何视觉效果,当前屏幕会直接被新屏内容替换。另外四个派生类则具有动画效果:BlockTransition、CoverTransition、SlideTransition 和 WipeTransition。

    activity生命周期、线程优先级、异常销毁、任务栈

    activity生命周期、线程优先级、异常销毁、任务栈 参考代码

    activity跳转后关闭父activity

    假如说有一个activity A,在A中跳转到Activity B, 然后在B中跳转到Activity C中,最后要在C中把activity A,B,C都关掉。  首先有一个Activity A,A中有一个Button,点击这个Button会跳到Activity B中去,但会拿到...

    在Android中查看当前Activity是否销毁的操作

    主要介绍了在Android中查看当前Activity是否销毁的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    异步任务中Activity销毁时保证提示框不出问题的代码示例

    如果在进行异步任务,如进行下载时,该示例保证在旋转屏幕,不会对加载任务进行中断重启,并且对话框正常显示。

    向右滑动销毁Activity的实例

    这个实例是Activity向右滑动销毁的,主要是对SlideFinishLayout的使用,代码比较简单,需要一些注意事项

Global site tag (gtag.js) - Google Analytics