`
kongweile
  • 浏览: 520893 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

横屏注意Android android:configChanges

 
阅读更多

 

这是hipak那边测试反馈回来的一个问题,说来惭愧,一直没注意到这个问题的存在。以为Power键就是onPause处理就完了,结果不是。

  这里边google的设计或许也有点问题,在竖屏情况下也许是一样处理的,不过当你的app是横屏,那就要注意了。

  每次Power键的时候,app是会强制回到竖屏状态的,并且会重新调用Activity的onCreate(),当然很多时候这不是我们想要的。所以就需要用到android:configChanges了,在配置文件里设置 android:configChanges="keyboardHidden|orientation",这样在屏幕方向改变的时候就不会重新调用 Activity的onCreate(),而是调用onConfigurationChanged(),然后在Activity里重载下

@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);
		if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
			vjPlayerSurfaceView.reSize();
		} else {
			Log.e("vjplayer", "shu");
		}
	}
 一般就这么处理下就可以了,要命的是用到了SurfaceView,而SurfaceView和Thread的生命周期是不一样的,唉,这里要说一下Google提供的sample了,里边有bug!!

  由于每次Power键的时候会调用SurfaceView的surfaceDestroyed(SurfaceHolder holder),但是回到app的时候又没有执行surfaceCreated(SurfaceHolder holder),于是就咯屁了~~

  目前想到一个能解决的方案是在onConfigurationChanged(Configuration newConfig)里手动处理,surfaceDestroyed(SurfaceHolder holder)+urfaceCreated(SurfaceHolder holder)+pause()处理。。。

  唉,希望可以找到一个比较好的解决方案吧。

 

分享到:
评论

相关推荐

    Android 简单例子:横屏 竖屏切换.rar

    本实例主要探讨如何在Android应用中实现在横屏和竖屏之间的自由切换,以及如何检测屏幕方向的变化。 首先,Android系统提供了两种基本的屏幕方向:横屏(Landscape)和竖屏(Portrait)。默认情况下,Android应用会...

    android 手机强制横竖屏

    在Android操作系统中,开发者可以为应用设置特定的屏幕方向,让用户在特定场景下强制使用横屏或竖屏模式。这通常涉及到Android系统提供的布局管理、传感器管理和Activity配置更改等相关知识。下面将详细介绍如何实现...

    android Activity始终横屏、全屏、屏幕方向改变等屏幕相关.doc

    本篇文章将深入探讨如何控制Android Activity的屏幕方向,实现始终横屏、全屏显示以及如何处理屏幕方向改变时Activity的销毁与重建问题。 1. **屏幕始终横屏或竖屏** 在AndroidManifest.xml中,我们可以为特定的...

    Android视频播放器(支持横竖屏切换)

    横屏模式下,可能需要更大的控制面板,更多的信息展示空间;竖屏模式则需要紧凑的布局,保证单手操作的便利性。 5. **视频控件**:播放、暂停、进度条、全屏按钮等控件是视频播放器不可或缺的部分。使用`SeekBar`来...

    Android如何禁止横屏竖屏的变换

    总的来说,通过在AndroidManifest.xml中正确设置`android:configChanges`属性,并在Activity中忽略配置变化,可以在Android 4.0及以上版本中实现禁止横屏竖屏切换的功能。然而,这种方法可能会导致用户界面在不同...

    Fragment实现横竖屏布局

    2. **定义布局文件**:为Fragment创建一个对应的布局文件,例如`fragment_layout.xml`,在其中定义横竖屏所需的视图元素。 3. **在Activity中添加Fragment**:在Activity的布局文件中,使用标签或者在代码中动态...

    Android应用源码之(横竖屏切换处理-IT计算机-毕业设计.zip

    Android支持在res/layout-land(横屏)和res/layout-port(竖屏)目录下放置不同的布局文件,系统会自动根据当前屏幕方向加载相应的布局。 在进行毕业设计时,这份源码可以帮助你了解如何处理屏幕适配,提高应用的...

    Android中WebView播放网上视频,横竖屏切换

    4. **考虑全屏模式**:如果需要在横屏时全屏显示视频,可以监听WebView的JavaScript事件,通过`WebChromeClient`的`onShowCustomView()`和`onHideCustomView()`方法来控制全屏和退出全屏。 以上就是如何在Android的...

    ZXing Android二维码/条码扫描,2020Android Studio版本,横竖屏都支持

    将`android:configChanges`设置为`orientation|screenSize`,然后在活动中处理配置改变事件,可以确保扫描界面在横竖屏切换时正确显示。同时,需要注意保存和恢复活动的状态,防止屏幕旋转时数据丢失。 在实际开发...

    【Android每周专题】横竖屏切换

    当设备从横屏切换到竖屏,或者反过来,Android会调用Activity的相关生命周期方法,例如`onConfigurationChanged()`。默认情况下,系统会销毁并重新创建Activity以加载对应方向的资源。 1. **屏幕配置更改**: ...

    android横竖屏

    Android设备可以支持横屏(Landscape)和竖屏(Portrait)两种模式,这两种模式对于用户体验和界面设计都有不同的要求。本篇将深入探讨“Android横竖屏”相关的知识点,以及如何处理屏幕旋转带来的影响。 一、...

    Fragment实现横竖屏的不同实现

    当设备从横屏切换到竖屏,或者反之,Android系统会默认重新创建Activity及其包含的所有Fragment。这是因为Android认为新的屏幕配置需要一个新的Activity实例。然而,开发者可以通过配置`android:configChanges`属性...

    Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化

    在Android中,默认情况下,当设备方向发生改变时(从横屏变为竖屏或相反),系统会销毁当前`Activity`实例并重新创建它。这导致了一系列生命周期方法的调用顺序如下: 1. **onSaveInstanceState()**:系统调用此...

    android 横竖屏切换生命周期

    android activity 执行屏幕横竖屏切换的时候activity声明周期执行的竖屏的时候点击横屏 09-04 15:54:27.675: I/yxd(6708): 应用程序执行了============onPause===方法===>> 09-04 15:54:27.685: I/yxd(6708): 应用...

    android二维码横屏竖屏

    在Android平台上,开发一款支持二维码扫描的应用时,通常会遇到横屏和竖屏两种设备方向的问题。本主题主要探讨如何在Android应用中处理这两种屏幕方向,确保二维码扫描功能的正常运行。 首先,Android系统允许应用...

    竖屏转横屏的 Activity切换效果

    在Android应用开发中,"竖屏转横屏的Activity切换效果"是一个常见的需求,涉及到屏幕方向的处理和动画效果的实现。以下将详细介绍这个主题的相关知识点。 首先,Android系统支持两种基本的屏幕方向: portrait(竖...

    Android代码-MyRotation.zip

    首先,Android系统允许应用根据设备的方向(如横屏或竖屏)来自动调整布局。这主要通过监听屏幕的旋转事件来实现,这些事件由系统通过传感器数据触发。Android提供了`SensorManager`类来获取设备的传感器数据,包括...

    Android 销毁当前的Activity

    这个属性可以让 Activity 默认显示在横屏模式下,但是这并不能阻止屏幕方向的改变。我们仍然需要使用 `android:configChanges` 属性和 `onConfigurationChanged` 方法来正确处理屏幕方向的改变。 让 Android 横竖屏...

    Android横竖屏贴换调动方法

    1. 按照上述步骤切换横屏时,系统会调用`onSaveInstanceState()`、`onPause()`、`onStop()`和`onDestroy()`,但在横屏状态下不会销毁Activity,而是保留其状态。 2. 切换回竖屏时,由于我们指定了配置变化由Activity...

    android横竖屏总结.doc

    有时横屏转竖屏会触发两次,而竖屏转横屏则只触发一次。这可能是由于设备厂商对系统行为的定制或是特定情况下的bug。解决这类问题通常需要深入分析设备特性和系统源码。 如果确实需要在屏幕旋转时重新加载Activity...

Global site tag (gtag.js) - Google Analytics