在警报对话后尝试导航到下一个活动时,我正在
此错误:
活动已泄露最初的窗口DecorView @ a61b0ed [] 在这里添加
这是片段:
if (alert1 != null && alert1.isShowing()) {
alert1.dismiss();
}
builder.setCancelable(true);
final AlertDialog alert1 = builder.create();
alert1.show();
onPause();
final Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
alert1.dismiss();
t.cancel();
}
}, 3000);
if (updatedQnty.equals("order full")) {
Intent intent = new Intent();
setResult(Activity.RESULT_OK, intent);
finish();
// callForDestroy(alert1);
}else{
mScannerView.resumeCameraPreview(this);
}
答案 0 :(得分:0)
错误表示您在活动结束后尝试显示或关闭对话框。你应该在父活动被销毁之前解雇它。
检查activity lifecycle并确保在您致电alert1.show();
或alert1.dismiss();
答案 1 :(得分:0)
在导航到另一个活动之前,您必须关闭显示的AlertDialog。您可以在Activity:onStop()
上添加检查和解除功能,以确保您将其解雇。
答案 2 :(得分:0)
您的问题可能是因为您的计时器仍在运行但活动已经完成。因此,您需要确保在活动结束前关闭对话框。
您可以通过在活动结束时取消计时器来解决问题。像这样:
if (updatedQnty.equals("order full")) {
Intent intent = new Intent();
setResult(Activity.RESULT_OK, intent);
// cancel the timer so the dialog not shown.
t.cancel();
// now you can finish the activity.
finish();
}