2014-10-07 3 views
0

내 앱에서 YouTube 스타일 상태 표시 줄 동작을 구현하고 있습니다. 사용자를 눌러 상태 표시 줄에 다음 표시하고, 버튼을 2 초 후에 사라 때 상태 표시 줄은 일반적으로 숨겨져 : 알림 패널 (드롭 다운 패널 확장 될 때알림 패널이 보이는지 확인하기

public void displayStatusBarTimed(){ 

    // Show status bar 
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 

      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     } 
    }, 2000); 

} 

내가 가진 문제는 온다 상태 표시 줄에서 2 초 후 상태 표시 줄과 함께 지워집니다. 어떻게 방지 할 수 있습니까? 몇 가지 테스트를 수행했는데 패널이 표시 될 때 onPause가 호출되지 않는 것으로 나타났습니다. 패널이 보이는지 확인하는 방법을 찾지 못했습니다. 패널을 닫은 후 2 초 타이머를 시작하고 싶습니다 ... 어떤 도움을 주시면 감사하겠습니다! samples for immersive mode에 나타낸 바와 같이

답변

0

, 당신은 onWindowFocusChanged(boolean hasFocus) 오버라이드 (override) :

private final Handler mDecorHandler = new Handler(); 

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    if (!hasFocus) { 
     // Remove any pending messages/runnables 
     mDecorHandler.removeCallbacksAndMessages(null); 
    } else { 
     mDecorHandler.post(...) 
    } 
} 
관련 문제