Activity 泄漏 window 令牌异常
Activity leaked window token exception
我正在向用户展示一个可运行的对话框并给他两个按钮,是和否。如果用户按“否”,我将完成 activity。如果用户按 YES,我想启动另一个 activity。这是对话代码:
ad.setTitle("Title");
ad.setMessage("Do you want to exit?");
ad.setIcon(R.drawable.common_signin_btn_icon_light);
ad.setButton(AlertDialog.BUTTON_POSITIVE, "Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// OPEN UP REGISTRATION ACTIVITY AGAIN
ad.dismiss();
finish();
startActivity(new Intent(
ActivityCodeVerification.this,
ActivityRegister.class));
}
});
ad.setButton(AlertDialog.BUTTON_NEGATIVE, "No,Exit",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
ad.dismiss();
finish();
startActivity(new Intent(
ActivityCodeVerification.this,
ActivityRegister.class));
}
});
每当按下任何按钮时,我都会收到此异常:
Activity com.Rp.chatout.ActivityCodeVerification has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4055a530 that was originally added here
我做错了什么??
ad.show();
在完成前的两种情况下添加调用方法 dismiss() Activity。
出现此异常是因为您在对话框中保留对 Activity 的引用,而 Activity 已被销毁。
您需要在退出 Activity 之前调用 dismiss()
从您执行上述代码的地方。
在离开 Activity.
之前,应关闭所有 windows 和对话框
我正在向用户展示一个可运行的对话框并给他两个按钮,是和否。如果用户按“否”,我将完成 activity。如果用户按 YES,我想启动另一个 activity。这是对话代码:
ad.setTitle("Title");
ad.setMessage("Do you want to exit?");
ad.setIcon(R.drawable.common_signin_btn_icon_light);
ad.setButton(AlertDialog.BUTTON_POSITIVE, "Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// OPEN UP REGISTRATION ACTIVITY AGAIN
ad.dismiss();
finish();
startActivity(new Intent(
ActivityCodeVerification.this,
ActivityRegister.class));
}
});
ad.setButton(AlertDialog.BUTTON_NEGATIVE, "No,Exit",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
ad.dismiss();
finish();
startActivity(new Intent(
ActivityCodeVerification.this,
ActivityRegister.class));
}
});
每当按下任何按钮时,我都会收到此异常:
Activity com.Rp.chatout.ActivityCodeVerification has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@4055a530 that was originally added here
我做错了什么?? ad.show();
在完成前的两种情况下添加调用方法 dismiss() Activity。
出现此异常是因为您在对话框中保留对 Activity 的引用,而 Activity 已被销毁。
您需要在退出 Activity 之前调用 dismiss()
从您执行上述代码的地方。
在离开 Activity.
之前,应关闭所有 windows 和对话框