¿Qué significa este código Java de 4 líneas en la aplicación de Android?

En mi aplicación java tengo este código

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

cuando lo construyo paraAndroid 2.3 (nivel 10) se compila y funciona bien. Pero cuando lo construyo paraAndroid 4.0 (nivel 15) se compila y me da una caída en el tiempo de ejecución y error de seguimiento

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.

Cuando comento esta línea y la compilación funciona bien y no hay problema ...

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

¿Entonces no entiendo por qué esto está pasando y qué significa este código?

Editar: algunas referencias están aquí

Cuando ejecuto la aplicación en mi teléfono. La versión es Android 4.0.3

aplicación segura para niños pequeños en Android

Respuestas a la pregunta(3)

Su respuesta a la pregunta