Android中的WindowManager $BadTokenException
作者:互联网
首先,我很清楚会发生此错误,因为我正在尝试通过不是活动的上下文调用窗口/对话框.
但是没有任何解决方案.我的要求是;我在普通JAVA类的方法中有一个带有自定义样式表的对话框.当我需要加载Dialog时,我想从任何Activity类中调用该方法.
在我的Activity类中,我设置了以下代码;
HomeClass homeClass = new HomeClass();
homeClass.showSplashScreen();
然后在我的HomeClass中,我设置了以下代码;
public void showSplashScreen() {
splashDialog = new Dialog(HomeActivity.getAppContext(), R.style.SplashScreen);
splashDialog.setContentView(R.layout.splash_screen);
splashDialog.setCancelable(false);
splashDialog.show();
}
通过保持这种设计,是否有任何方法可以摆脱WindowManager $BadTokenException
谢谢
解决方法:
我将修改您的代码,这可能对您有所帮助…
HomeClass homeClass = new HomeClass(this);
homeClass.showSplashScreen();
在您的Home类中..添加参数构造函数.
public class Home {
private Context context;
public Home(Context context){
this.context = context;
}
public void showSplashScreen() {
splashDialog = new Dialog(context, R.style.SplashScreen);
splashDialog.setContentView(R.layout.splash_screen);
splashDialog.setCancelable(false);
splashDialog.show();
}
标签:android-alertdialog,android 来源: https://codeday.me/bug/20191009/1877611.html