2012-12-13 7 views
3

매우 이상한 문제가 있습니다. 1 개의 활동 전환 (뒤로 버튼을 누른 후) 및 Honeycomb을 실행중인 Galaxy Tab 10.1에서만 overridePendingTransition이 제대로 작동하지 않는 것과 관련이 있습니다.내 overridePendingTransition이 하나의 활동에서 작동하지 않는 이유

여기에 situtation이 있습니다. Activity를 확장하는 BaseActivity 클래스가 있습니다. 나는 이것을 사용하여 안드로이드 디폴트로부터 전환 변화를 추가한다. 내가 지금처럼 마무리() 함수를 오버라이드 (override) :

@Override 
    public void finish() 
    { 
     super.finish(); 
     Log.i(StaticValues.TAG, "Calling finish in ActivityBase"); 
     overridePendingTransition(getAnimationId("slide_in_right") ,getAnimationId("slide_out_right")); 
    } 

내가 일치를 사용하고 같은 getAnimationId를 사용해야하고 사용할 수 R.anim.slide_in_right/왼쪽

또한 getAnimationId는 아래 함수가입니다 알고 싶어 할 수도 있습니다 :

protected int getAnimationId(String animName) 
{ 
    if(mResources == null) 
    { 
     mResources = this.getResources(); 
    } 

    return mResources.getIdentifier(animName, "anim", mPackage); 
} 

이제 이상한 부분이 있습니다. 이 기능은 Nexus S 휴대 전화의 기본 활동에서 ActivityBase를 기반으로 활동을 호출 할 때 유용합니다. 내 갤럭시 탭 10.1에서 두 가지 활동 (정보 활동, 웹 페이지 링크 등)을 호출 할 때도 효과적이지만, 세 번째 활동 (오디오 레코더)을 호출 할 때 전환은 괜찮습니다 (슬라이드).하지만 종료 할 때 호출 완료 또는 뒤로 버튼을 통해) 방향으로 바뀌는 것처럼 보입니다 (태블릿이기 때문에 표준 홈 화면). 그런 다음 주 활동을 원래대로 되돌립니다.

나는 당신에게이 역사를주었습니다. 누군가가 왜 그 하나의 활동에서만 태블릿에서만 일어날 수 있는지 말해 줄 수 있습니까?

public void finish() 
{ 
    removeUnsavedRecording(); 
    super.finish(); 

} 

위의 내용은 오디오 레코더 작업에서 내 재정의 된 마무리 기능입니다.

답변

0

그래이 오류가 수정되어 이상하게 수정되었습니다. 내 AudioRecorderActivity는 테스트 단계에서 실행기 클래스였습니다. 어떤 이유로 장치가 이것을 위해 출구 애니메이션을 캐시했습니다. (기묘한). 그래서 ActivityBase finish() 메서드가 다른 두 개의 애니메이션 (작업중 인)을 override하는 것을 변경 한 다음 문제를 다시 수정하여 문제를 해결했습니다.

그래서 내 유일한 옵션은 앱이 어떻게 든이 액티비티의 기본 애니메이션을 (런처 액티비티였던 때부터) 캐시했다고 믿는 것입니다. 이것에 대한 다른 설명은 보이지 않습니다.

관련 문제