2014-12-04 96 views
0

我的問題是關於android設備問題。Android設備問題

我們有一個Android設備在我們的辦公室: 三星Galaxy Note 2 - GN7100(Android版本4.1.2)

我們使用此設備的Android開發&測試目的。但目前該設備正在創造一些與Android生命週期有關的問題。對於例如在onCreate()方法中,我們已經從後端下載數據,現在如果我們旋轉設備onCreate()將再次調用,但我們通過將以下行添加到標記來限制在設備旋轉上調用onCreate():

android:configChanges="orientation|screenLayout|keyboardHidden" 

它工作正常,但突然間這個技巧不工作,即設備調用onCreate()方法。然後我重置工廠,但問題仍然存在。

我的問題是:如果這是設備問題,那我們該如何糾正它?

在此先感謝。

+0

試試這個http://developer.android.com/guide/topics/resources/runtime-changes。 html – 2014-12-04 05:28:07

+1

當活動被創建時,onCreate()被調用...所以如果你的活動因配置改變以外的其他原因而被銷燬,它會被再次調用......但是,你應該添加screenSize到你的列表中@ archon92指出,由於旋轉設備將導致屏幕尺寸改變。 – Luis 2014-12-04 05:41:40

+1

謝謝。添加「screenSize」後,它工作正常。 @illegal參數,從你給定的鏈接我得到了以下幾行,這很有用: 「...爲了防止在開發API級別13或更高版本時由於方向更改而導致運行時重新啓動...必須包括」screenSize「值除了「方向」值之外,也就是說,必須使用android:configChanges =「orientation | screenSize」。但是,如果應用程序的目標級別爲12或更低,則活動始終會處理此配置更改本身。 – Dibyendu 2014-12-04 06:45:31

回答

1

試試這個

android:configChanges="keyboardHidden|orientation|screenSize" 

和格式化你的代碼。此爲我工作

//Define Below in you Manifest file. 
      <activity 
        android:name="yourname" 
        android:configChanges="keyboardHidden|orientation|screenSize" 
      </activity> 

//Define Below in your activity. 

     @Override 
      public void onConfigurationChanged(Configuration newConfig) { 

       super.onConfigurationChanged(newConfig); 

       if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
        //your code 
       } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      //your code 

       } 
      }