O que significa esse código java de 4 linhas no aplicativo android?

Na minha aplicação java eu ​​tenho esse código

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

quando eu construí-lo paraandroid 2.3 (nível 10) compila e funciona bem. Mas quando eu construo paraandroid 4.0 (nível 15) ele compila e me dá um crash no tempo de execução e após erro

07-16 14:00:03.090: E/AndroidRuntime(29487): FATAL EXCEPTION: main
07-16 14:00:03.090: E/AndroidRuntime(29487): java.lang.IllegalArgumentException: Window type can not be changed after the window is added.

quando eu comentar esta linha e construí-lo funciona bem e sem problema ..

//this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);

então eu não estou entendendo porque este happning e o que esse código significa?

Editar: alguma referência está aqui

quando eu corro aplicativo no meu telefone.A versão é android 4.0.3

aplicativo seguro da criança no android

questionAnswers(3)

yourAnswerToTheQuestion