如果在实例化对话框内部的构建器对象时传递的上下文对象是:getApplicationContext(),则会报异常如下异常:
Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
因为对话框是属于Activity的一部分,但getApplicationContext()方法返回的是整个应用程序的上下文对象,不是Activity,造成对话框不知道应该附着在哪个Activity之上,因而报错;
解决办法:将AlertDialog.Builder builder=new AlertDialog.Builder(getApplicationContext());
改为 AlertDialog.Builder builder=new AlertDialog.Builder(this);
本文解析了在使用getApplicationContext()初始化对话框时导致的BadTokenException异常原因,并提供了解决方案,即将上下文对象更改为Activity的引用。
6658

被折叠的 条评论
为什么被折叠?



