博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AlertDialog 横竖屏切换报WindowLeaked / dialog消失
阅读量:2121 次
发布时间:2019-04-30

本文共 1708 字,大约阅读时间需要 5 分钟。

解决办法:

1、在onDestroy添加如下代码

@Override    protected void onDestroy() {        super.onDestroy();        if (alertDialog1 != null)            alertDialog1.dismiss();    }

2、在onSaveInstanceState方法,在activity销毁前,判断dialog是否显示,如果显示设置一个标识,代码

@Override    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        if (alertDialog1 != null && alertDialog1.isShowing())            outState.putBoolean("FLAG", true);    }

3、在onRestoreInstanceState方法,显示dialog,代码

@Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);            boolean dialog_shown = savedInstanceState.getBoolean("FLAG");            if (dialog_shown){                showDialog();}    }

这样AlertDialog,不会泄露也不会切换屏幕后消失

附:showDialog方法

private void showDialog() {        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this)                .setTitle("对话框")                .setMessage("正在加载哟...")                .setNegativeButton("取消", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Toast.makeText(getApplicationContext(), "cancle", Toast.LENGTH_SHORT).show();                    }                })                .setPositiveButton("确定", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        Toast.makeText(getApplicationContext(), "sure", Toast.LENGTH_SHORT).show();                    }                });        alertDialog1 = alertDialog.create();        alertDialog1.show();    }

转载地址:http://rwfrf.baihongyu.com/

你可能感兴趣的文章
【Pyton】【小甲鱼】类和对象:一些相关的BIF(内置函数)
查看>>
【Pyton】【小甲鱼】魔法方法
查看>>
单元测试需要具备的技能和4大阶段的学习
查看>>
【Loadrunner】【浙江移动项目手写代码】代码备份
查看>>
Python几种并发实现方案的性能比较
查看>>
[Jmeter]jmeter之脚本录制与回放,优化(windows下的jmeter)
查看>>
Jmeter之正则
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【面试】一份自我介绍模板
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>