在我的活动中,我正在加载一些8个片段,从第8个片段显示一些警告对话框。在该会话过期后,将它们重定向到第一个片段而没有用户交互。在那个时间警报对话框没有关闭哪个创建来自8个片段。
答案 0 :(得分:0)
如果你使用这样的警告对话框:
AlertDialog.Builder builder = new AlertDialog.Builder(Activity);
您需要保留从show方法返回的对话框实例,并从该实例调用dismiss。
AlertDialog dialog = builder.show();
//Use this anywhere to close
dialog.dismiss();
答案 1 :(得分:0)
在第8个片段的onPause()中,你应该隐藏AlertDialog。
class XYZ extends Fragment{
//Keep the reference to AlertDialog as a member variable in your Fragment
AlertDialog mDialog;
//other member declarations ...
@Override
public void onPause() {
// check if dialog is not null and is already showing
if(mDialog !=null && mDialog.isHowing())
mDialog.hide();
super.onPause();
}
注意:如果viewpager从内存中删除了第8个片段,并且您在对话框中执行的某些操作引用了第8个片段,那么它将导致空指针异常。