每次 Power 键的时候,app是会强制回到竖屏状态的,并且会重新调用Activity的 onCreate() ,当然很多时候这不是我们想要的。所以就需要用到a ndroid: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程序优化之对屏幕旋转的处理总结
  2. android软键盘弹出,会把原来的界面挤上去的问题 处理方法
  3. Android(安卓)O: 触摸事件传递流程源码分析(上)
  4. android webkit学习笔记1---url的load过程
  5. Android(安卓)ListView优化之getView频繁多次调用与ViewHolder工
  6. Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
  7. Android(安卓)Keyboard/Touch Panel分析
  8. Android(安卓)上层界面到内核代码的完整的流程分析,以alarm为例子
  9. Android内部数据库

随机推荐

  1. 50个Android开发人员必备UI效果源码
  2. Android的设计模式-原型模式
  3. Android的设计模式-桥接模式
  4. 50个Android开发人员必备UI效果源码
  5. Android的设计模式-迭代器模式
  6. Android的设计模式-访问者模式
  7. [Android]Android布局文件中的android:id
  8. Android的设计模式-命令模式
  9. Android的设计模式-单例模式
  10. 【学习推荐】最新Android学习教程持续更