每次
Power
鍵的時候,app是會強制回到豎屏狀態的,而且會從新調用Activity的
onCreate()
,固然不少時候這不是咱們想要的。因此就須要用到a
ndroid:configChanges
了,在配置文件裏設置
android:configChanges="keyboardHidden|orientation"
,這樣在屏幕方向改變的時候就不會從新調用 Activity的onCreate(),而是調用onConfigurationChanged(),而後在Activity裏重載下
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
//橫向
}else{
//豎向
}
}
通常就這麼處理下就能夠了,要命的是用到了SurfaceView,而SurfaceView和Thread的生命週期是不同的,唉,這裏要說一下Google提供的sample了,裏邊有bug!!
由 於每次Power鍵的時候會調用SurfaceView的surfaceDestroyed(SurfaceHolder holder),可是回到 app的時候又沒有執行surfaceCreated(SurfaceHolder holder),因而就咯屁了~~
目前想到一個能解決的方案是在onConfigurationChanged(Configuration newConfig)裏手動處理,
surfaceDestroyed(SurfaceHolder holder)+
surfaceCreated(SurfaceHolder holder)+
pause()處理。。。 唉,但願能夠找到一個比較好的解決方案吧。