Co oznacza ten 4-liniowy kod Java w aplikacji na Androida?

W mojej aplikacji java mam ten kod

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

kiedy go zbudujęandroid 2.3 (poziom 10) kompiluje się i działa dobrze. Ale kiedy ją zbudujęandroid 4.0 (poziom 15) kompiluje się i powoduje awarię w czasie wykonywania oraz następujący błąd

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.

kiedy komentuję tę linię i kompilację, działa dobrze i nie ma problemu ..

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

więc nie rozumiem, dlaczego tak się dzieje i co oznacza ten kod?

Edytować : niektóre odniesienia są tutaj

kiedy uruchamiam aplikację na moim telefonie. Wersja jest Android 4.0.3

bezpieczna aplikacja dla dzieci na Androida

questionAnswers(3)

yourAnswerToTheQuestion