我有一个登录屏幕,登录成功后,它会完成并显示AppActivity。如果用户从应用程序注销,则会再次显示登录屏幕,从而完成AppActivity。但是,当登录屏幕在用户注销后尝试显示对话框时,我遇到了如下所示的错误:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4276c0e8 is not valid; is your activity running?
如果用户成功登录app,登录屏幕已完成,显示AppActivity:
Intent intent = new Intent(LoginScreen.this, AppActivity.class);
startActivity(intent);
finish();
如果用户点击退出按钮,则显示AppActivity,显示LoginScreen:
Intent intent = new Intent(AppActivity.this, LoginScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
答案 0 :(得分:2)
当您显示不再存在的上下文的对话框时,可能会发生这种情况。一个常见的情况 - 如果'show dialog'操作是在异步操作之后,并且在该操作期间,原始活动(即对话框的父级)将被销毁。
这可能类似here。 我希望它有所帮助。