在我的java应用程序中,我有以下代码
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}当我为Android2.3(级别10)构建它时,它编译并工作得很好。但是,当我为Android4.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);所以我不明白为什么会发生这种情况,这段代码意味着什么?
编辑:参考资料在这里
发布于 2012-10-15 07:07:43
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}用于禁用android中的home按钮,但是
此安全漏洞已在较新版本的中修复,因此它不会在ICS和果冻豆中工作!
发布于 2013-11-14 18:26:01
我已经解决了这个问题
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);在调用超级程序之前在onCreate中。
protected void onCreate(Bundle savedInstanceState) {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onCreate(savedInstanceState);
}萨拉多斯·德德麦德林
发布于 2012-09-24 07:02:56
@Override
public void onWindowFocusChanged(boolean hasFocus) {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onWindowFocusChanged(hasFocus);
}我在使用windowAttached时也遇到了一些问题,尝试使用windowFocusChanged。
https://stackoverflow.com/questions/12560180
复制相似问题