>我有一个警报对话框,每当服务器或 API 有响应时,我都会显示该对话框。它看起来像这样:
public void showDeveloperDialog(Context context, String responseMessage) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setTitle("Response");
alertDialog.setMessage(responseMessage);
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.setCancelable(false);
alertDialog.show();
}
如果从示例活动 A 调用对话框,并且响应提示用户转到另一个活动(活动 B(时存在延迟,则应用将崩溃,因为调用它的上下文不在视图中。
如何检查以确保对话框仅在初始上下文在视图中时才显示?
您可以将上下文强制转换为活动以检查活动是否已完成,并且仅在未完成时才使用 isFinishing(( 方法显示
Activity activity = (Activity) context;
if (!activity.isFinishing()) {
// You can now display the dialog
alertDialog.show();
}