2014-07-07 1 views
0

자세한 내용은 인터페이스가 SharedPreferences 인 인터페이스를 사용하여 앱이 열리는 횟수를 세고 화면에 그 수를 표시하지만 변경 될 때마다 orientation 수를 계산합니다 여전히 증가합니다.내 안드로이드 애플 리케이션이 열리고 화면 방향을 처리하는 횟수를 세우십시오.

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.d(TAG, "onCreate!"); 

    mPrefs = getPreferences(MODE_PRIVATE); 

    int count = mPrefs.getInt(COUNT, 0); 

    count = count + 1; 
    Editor editor = mPrefs.edit(); 
    editor.putInt(COUNT, count); 
    editor.commit(); 

    mTextView = new TextView(this); 
    mTextView.setTextSize(40); 
    mTextView.setText("Count: " + count); 
    Log.d(TAG, "Count is " + count); 
    setContentView(mTextView); 
    // setContentView(R.layout.activity_main); 

    mTextView.setOnClickListener(this); 

} 

답변

0

에만 onSaveInstaceState가 호출되기 때문에 방향이 변경 될 때이 savedInstanceState를 통해 저장되지 않은 수를 증가 할 수

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (savedInstanceState != null) { 
     if (savedInstanceState.containsKey(KEY)){ 
      count = savedInstanceState.getInt(KEY); 
     } 
    } else { 
     count = mPrefs.getInt(COUNT, 0); 
     count += 1; 
     Editor editor = mPrefs.edit(); 
     editor.putInt(COUNT, count); 
     editor.commit(); 
    } 
} 

    @Override 
    protected void onSaveInstanceState (Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt(KEY, count); 
    } 
0

에서 OnCreate 때마다 장치 방향 변경이라고 : 나는 세로 레이아웃을 부착하지 않으

, 나는 onCreate()에 대한 코드는 다음과 같습니다 내 응용 프로그램 모두 방향이 가능합니다. 대신 관련 코드를 OnStart에 넣으십시오.

관련 문제