2011-05-10 7 views
4

내 애플리케이션에 Admob을 구현하는 중에 매우 불쾌한 버그가 발생합니다. 문제는 내 코드에 있다고 생각했지만 약간의 조사를 거친 후 은 Android-Banner-Essentials 예 (다운로드 here)에 있습니다. 누군가가이 문제를 만난 적이 있거나 을 처리하는 방법을 알고 있는지 궁금합니다.Android의 Admob - 활동이 재개 될 때 상태 표시 줄 영역이 적용되지 않습니다.

기본적으로 응용 프로그램에서 상태 표시 줄과 제목 표시 줄이 모두 비활성화 된 경우 은 전체 화면을 사용해야합니다. Banner Essentials 예제는 맨 위의 Admob 배너를 표시합니다. 나는 예를 다운로드 한 두 가지를 변경 :

  • 내 발행인 ID가 제대로 컴파일하고 광고를받을 수 추가,
  • 제목 및 상태를 해제하는 활동의 매니페스트 한 PARAM 추가) 바 : 안드로이드 : 테마 = "@ 안드로이드는 : 스타일/Theme.NoTitleBar.Fullscreen"

그것을 (시도 넥서스 원, G1, 욕망, 다른 안드로이드 버전)에 시작됩니다 상관없이 장치, 바이너리 컴파일, 같은과 영향 문제 :

광고 배너를 눌러 홈을 표시
  • ,
  • 일단 대기 화면으로 다시 찍은 최근 시작 응용 프로그램,
  • 이 배너 필수 응용 프로그램을 다시 선택을보기 위해 홈 누르고 있습니다.

내 테스트에 따르면 50 % 재생산 확률로 Admob 배너는 으로 돌아 가지 않으며 화면의 맨 위로 돌아갑니다.

http://img841.imageshack.us/g/correctz.png/

중요 사항 : 내가 세 가지 스크린 샷을 준비 무엇을 의미하는지 잘 보여주기 위해

  • 응용 프로그램이 정상적으로 재개 될 때, 배너 단지 상태 표시 줄 아래에 표시되며, 때까지 최대 슬라이드
  • 배너가 전혀 움직이지 않는 경우
  • 다른 인터럽트 문제를 재현 할 수 없습니다. ( 뒤로, 전원 단추)
  • 어떻게 든 포커스를 얻거나 잃는 것과 관련이 있다고 생각합니다 ( 스크린 샷 참조).

내 앱이 Banner Essentials보다 약간 복잡하기 때문에 코드에서 행운을 찾지 않고 가능한 한 상황을 단순화하기 위해 노력했습니다. 결과는 다음과 같습니다.

문제를 일으키는 원인을 알고있는 사람이 있습니까? 이 동작을 처리하기 위해 일부 추가 플래그 또는 속성을 설정해야합니까?

+0

안녕하세요! 문제를 해결했거나 적어도 그 원인을 발견 했습니까? (나는 방금 그것으로 튀었다 ...) – vmatyi

답변

4

이 것은 Android 버그로 참조됩니다. 해결 방법이 없으며 해결 방법이 있습니다. onResume에서 약 1 초 후에 Window Fullscreen을 다시 설정해야합니다 (상태 표시 줄에서 애니메이션을 끝내기까지 기다릴 때까지 ...). 그러면 전체 레이아웃을 다시 계산하고 문제를 "해결"합니다 정확한 positiin으로 빠른 점프와 함께).

public void onResume() 
{ 

    ... 

    handler.postDelayed(new Runnable() { 
     public void run() { 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
          WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     } 
    }, 1500); 

    ... 

} 

좋지 않습니다. 그러나 여전히 가장 좋은 방법입니다. 더 많은 정보 here.

0

내 경우에이 동작은 잠금 화면에서 다시 시작하여 트리거되었습니다. 왜 그런지 모르지만 빈 오버로드 된 함수를 추가 한 후에는 고정되어있었습니다 (그러나 HTC Wilfire에서만 테스트했습니다). 그것은 너와 다른 벌레일지도 모른다.

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    /* Workaround a probable Android bug with fullscreen activities: 
    * on resume status bar hides and black margin stays, 
    * reproducible half of the time when coming back from lock screen 
    * (tested on HTC Wildfire) 
    * No idea why but this empty overload method fixed it. 
    */ 
}