android:configChanges

每次 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()處理。。。   唉,但願能夠找到一個比較好的解決方案吧。
相關文章
相關標籤/搜索