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

publicvoidonConfigurationChanged(ConfigurationnewConfig){
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
//横向
}else{
//竖向
}
}

一般就这么处理下就可以了,要命的是用到了SurfaceView,而SurfaceView和Thread的生命周期是不一样的,唉,这里要说一下Google提供的sample了,里边有bug!!
由于每次Power键的时候会调用SurfaceView的surfaceDestroyed(SurfaceHolderholder),但是回到app的时候又没有执行surfaceCreated(SurfaceHolderholder),于是就咯屁了~~
目前想到一个能解决的方案是在onConfigurationChanged(ConfigurationnewConfig)里手动处理,surfaceDestroyed(SurfaceHolderholder)+surfaceCreated(SurfaceHolderholder)+pause()处理。。。
唉,希望可以找到一个比较好的解决方案吧。

更多相关文章

  1. Android(安卓)基础总结:(十一)ContentResolver与ContentProvider如
  2. Android事件处理的两种模型
  3. Android(安卓)4 游戏高级编程(第2版)
  4. Android消息机制分析
  5. 系出名门Android(10) - HTTP 通信, XML 解析, 通过 Hander 实现
  6. Android(安卓)Keyboard/Touch Panel分析
  7. android 按键
  8. Android(安卓)屏幕切换和onConfigurationChanged不调用的原因
  9. android AsyncTask学习

随机推荐

  1. Android构建工具Gradle知识2
  2. android下载网络图片并缓存
  3. 个人学习资料汇总(持续更新)
  4. Android 获取values String
  5. Android(安卓)正 N 边形圆角头像的实现
  6. Ubuntu编译ffmpeg4.1.3
  7. android 发送http请求方法和异常解决方法
  8. android之按钮单击事件及监听器的实现方
  9. android tts语音使用的一些资料
  10. Android 版本更新下载自动安装APK,并解决A