每当服务器或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),则由于调用它的上下文不在视图中,应用程序将崩溃。
如何检查以确保仅在初始上下文可见时才显示对话框?
答案 0 :(得分:0)
您可以将上下文转换为活动,以检查活动是否完成,并且仅使用isFinishing()方法显示该活动是否完成
Activity activity = (Activity) context;
if (!activity.isFinishing()) {
// You can now display the dialog
alertDialog.show();
}