Search code examples
javaandroidandroid-emulatorandroid-windowmanager

What does this 4 line java code means in android application?


In my java application i have this code

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

when i build it for android 2.3 (level 10) it compiles and works fine. But when i build it for android 4.0 (level 15) it compiles and gives me crash at run time and following error

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.

when i comment this line and build it works fine and no issue..

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

so i am not getting why this happning and whats this code means?

Edit : some reference are here

when I run app on my phone.The version is android 4.0.3

toddler safe app on android


Solution

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

    is used to disable home button in android but

    this security flaw has been fixed in newer versions of Android so it will not work in ICS and jelly bean...!!