Dialog根据网络状态显示,网络正常自动消失时,dismiss无效

开发需求:在网络断开的时候自动弹出dialog通知用户,等待自动重连后调用dismiss使dialog消失。
遇到问题:网络断开时,调用dismiss无效。
代码截图:
错误示例1


错误示例2
由于网络断开或者连接都会接收广播从而调用onReceive,从而初始化一个dialog,如果网络断开就会show(),但是当网络再次连接时仍然会初始化一个dialog,因此调用dismiss()时,dismiss的对象已经不是网络断开时调用show()所显示的dialog了,因此已经显示的dialog不会消失


改正过后的正确示例
改善之后的代码:
1. 将dialog定义为全局变量,从而保证网络断开或者重连时的dialog对象一致。
2. 将dialog创建代码块放到断开的时候创建从而提升效率。
3. 重连dismiss后使dialog=null从而释放了内存,节省了资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值