私のJavaアプリケーションには、このコードがあります
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
Android 2.3(レベル10)用にビルドすると、 コンパイルして正常に動作します。しかし、 Android 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);
だから私はなぜこれが起こっているのか、そしてこのコードが何を意味するのか理解していませんか?
編集: いくつかの参照はこちら