Problemas com bloqueio de tela

o problema é o seguinte, tenho uma activity que seu layout fica que fullscreen por onde eu utilizo o seguinte codigo dentro do onCreate

[code]requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);[/code]

a tela se inicia normalmente porem quando bloqueio a tela e desbloqueio ela, a tela nao fica mais em full screen eu vasculhando o codigo cheguei a um metodo

       @Override
	public void onAttachedToWindow() {
		super.onAttachedToWindow();            
		this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);     
	}

quando o this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); é comentado a tela fica novamente em fullScreen quando a tela é bloqueada.

o problema é o seguinte eu tenho um metodo onKeyDown() na activity esse metodo so é chamado se o this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); não estiver comentado, e o onKeyDown() é fundamental para a aplicação pois da funçoes especificas ao botoes, home, search, back e menu, eu pensei em usar o onSerchRequest(), onBack, onCreateOption menu, para pegar o evento dos botoes, porem nao existem metodos para manipular o home, é possivel manipular ele apenas on onKeyDown().

alguem tem alguma ideia ou dica, para resolver esse problema eu preciso da tela em fullScreen e ao mesmo tempo conseguir pegar os eventos dos botoes.