这4行java代码在android应用程序中意味着什么?
在我的java应用程序中,我有以下代码这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
@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);
}