Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这4行java代码在android应用程序中意味着什么?_Java_Android_Android Emulator_Android Windowmanager - Fatal编程技术网

这4行java代码在android应用程序中意味着什么?

这4行java代码在android应用程序中意味着什么?,java,android,android-emulator,android-windowmanager,Java,Android,Android Emulator,Android Windowmanager,在我的java应用程序中,我有以下代码 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); } 当我为安卓2.3(10级)构建它时,它可以编译并运行良好。但是当我为安卓4.0(15级)构建它时,它会编译,并在运行时导致崩溃和以下错误 07

在我的java应用程序中,我有以下代码

@Override
public void onAttachedToWindow()
  {
  this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
  super.onAttachedToWindow();
  }
当我为安卓2.3(10级)构建它时,它可以编译并运行良好。但是当我为安卓4.0(15级)构建它时,它会编译,并在运行时导致崩溃和以下错误

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.
当我评论这行并构建它时,它运行良好,没有问题

//this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
所以我不明白为什么会发生这种情况,这个代码是什么意思

编辑: 这里有一些参考资料

我对windowAttached也有一些问题,请尝试改用windowFocusChanged

@Override
public void onAttachedToWindow()
  {
  this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
  super.onAttachedToWindow();
  }
用于禁用android中的主页按钮,但


安全漏洞已在较新版本的Android中修复,因此在ICS和jelly bean中不起作用

我已经解决了这个问题

this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
在调用super之前,请在onCreate中

 protected void onCreate(Bundle savedInstanceState) {

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

        super.onCreate(savedInstanceState);
}

Saludos desde Medellín

这仅仅意味着,当您的活动出现在前台时,如BlackBerry中的onDisplay,可以简单地将targetSDK设置为小于14。然后它就可以工作了。它给了我一个错误,java.lang.IllegalArgumentException:在添加窗口后,无法更改窗口类型。
 protected void onCreate(Bundle savedInstanceState) {

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

        super.onCreate(savedInstanceState);
}